/[eiffelstudio]/branches/eth/eve/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
ViewVC logotype

Log of /branches/eth/eve/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 94983 - (view) (annotate) - [select for diffs]
Modified Fri May 2 11:05:28 2014 UTC (5 years, 5 months ago) by jasonw
File length: 403580 byte(s)
Diff to previous 94740
<<Merged from trunk#94978.>>

Revision 94740 - (view) (annotate) - [select for diffs]
Modified Fri Mar 28 09:42:08 2014 UTC (5 years, 6 months ago) by jasonw
File length: 403293 byte(s)
Diff to previous 94581
<<Merged from trunk#94739.>>

Revision 94581 - (view) (annotate) - [select for diffs]
Modified Fri Mar 7 11:57:58 2014 UTC (5 years, 7 months ago) by jasonw
File length: 399526 byte(s)
Diff to previous 94556
<<Merged from trunk#94580.>>

Revision 94556 - (view) (annotate) - [select for diffs]
Modified Fri Feb 28 09:44:00 2014 UTC (5 years, 7 months ago) by jasonw
File length: 399392 byte(s)
Diff to previous 94134
<<Merged from trunk#94547.>>

Revision 94134 - (view) (annotate) - [select for diffs]
Modified Fri Jan 31 08:25:58 2014 UTC (5 years, 8 months ago) by jasonw
File length: 391447 byte(s)
Diff to previous 94093
<<Merged from trunk#94133.>>

Revision 94093 - (view) (annotate) - [select for diffs]
Modified Fri Jan 24 16:34:41 2014 UTC (5 years, 8 months ago) by jasonw
File length: 391251 byte(s)
Diff to previous 93949
<<Merged from trunk#94092.>>

Revision 93949 - (view) (annotate) - [select for diffs]
Modified Fri Jan 10 09:05:53 2014 UTC (5 years, 9 months ago) by jasonw
File length: 390943 byte(s)
Diff to previous 93780
<<Merged from trunk#93948.>>

Revision 93780 - (view) (annotate) - [select for diffs]
Modified Fri Dec 20 15:08:05 2013 UTC (5 years, 9 months ago) by jasonw
File length: 390992 byte(s)
Diff to previous 93580
<<Merged from trunk#93779.>>

Revision 93580 - (view) (annotate) - [select for diffs]
Modified Fri Nov 29 07:03:27 2013 UTC (5 years, 10 months ago) by jasonw
File length: 390859 byte(s)
Diff to previous 93518
<<Merged from trunk#93579.>>

Revision 93518 - (view) (annotate) - [select for diffs]
Modified Fri Nov 22 10:13:29 2013 UTC (5 years, 10 months ago) by jasonw
File length: 389462 byte(s)
Diff to previous 93266
<<Merged from trunk#93517.>>

Revision 93266 - (view) (annotate) - [select for diffs]
Modified Fri Nov 8 07:54:05 2013 UTC (5 years, 11 months ago) by jasonw
File length: 379634 byte(s)
Diff to previous 93170
<<Merged from trunk#93264.>>

Revision 93170 - (view) (annotate) - [select for diffs]
Modified Fri Oct 25 08:53:07 2013 UTC (5 years, 11 months ago) by jasonw
File length: 379655 byte(s)
Diff to previous 93107
<<Merged from trunk#93169.>>

Revision 93107 - (view) (annotate) - [select for diffs]
Modified Fri Oct 11 05:06:48 2013 UTC (6 years ago) by jasonw
File length: 376559 byte(s)
Diff to previous 93019
<<Merged from trunk#93106.>>

Revision 93019 - (view) (annotate) - [select for diffs]
Modified Fri Sep 27 09:12:07 2013 UTC (6 years ago) by jasonw
File length: 376559 byte(s)
Diff to previous 92897
<<Merged from trunk#93018.>>

Revision 92897 - (view) (annotate) - [select for diffs]
Modified Fri Aug 30 08:25:13 2013 UTC (6 years, 1 month ago) by jasonw
File length: 371640 byte(s)
Diff to previous 92782
<<Merged from trunk#92896.>>

Revision 92782 - (view) (annotate) - [select for diffs]
Modified Fri Jul 5 06:01:58 2013 UTC (6 years, 3 months ago) by jasonw
File length: 371113 byte(s)
Diff to previous 92750
<<Merged from trunk#92781.>>

Revision 92750 - (view) (annotate) - [select for diffs]
Modified Fri Jun 28 04:42:18 2013 UTC (6 years, 3 months ago) by jasonw
File length: 370682 byte(s)
Diff to previous 92723
<<Merged from trunk#92749.>>

Revision 92723 - (view) (annotate) - [select for diffs]
Modified Fri Jun 21 07:47:04 2013 UTC (6 years, 3 months ago) by jasonw
File length: 370581 byte(s)
Diff to previous 92684
<<Merged from trunk#92722.>>

Revision 92684 - (view) (annotate) - [select for diffs]
Modified Fri Jun 7 15:28:53 2013 UTC (6 years, 4 months ago) by jasonw
File length: 370040 byte(s)
Diff to previous 92499
<<Merged from trunk#92682.>>

Revision 92499 - (view) (annotate) - [select for diffs]
Modified Fri Apr 26 23:06:21 2013 UTC (6 years, 5 months ago) by jasonw
File length: 370008 byte(s)
Diff to previous 92434
<<Merged from trunk#92492.>>

Revision 92434 - (view) (annotate) - [select for diffs]
Modified Fri Apr 12 10:41:30 2013 UTC (6 years, 6 months ago) by jasonw
File length: 369539 byte(s)
Diff to previous 92408
<<Merged from trunk#92433.>>

Revision 92408 - (view) (annotate) - [select for diffs]
Modified Fri Apr 5 09:22:00 2013 UTC (6 years, 6 months ago) by jasonw
File length: 369455 byte(s)
Diff to previous 91379
<<Merged from trunk#92407.>>

Revision 91379 - (view) (annotate) - [select for diffs]
Modified Fri Mar 15 08:48:07 2013 UTC (6 years, 7 months ago) by jasonw
File length: 368412 byte(s)
Diff to previous 91347
<<Merged from trunk#91375.>>

Revision 91347 - (view) (annotate) - [select for diffs]
Modified Fri Mar 8 09:55:21 2013 UTC (6 years, 7 months ago) by jasonw
File length: 369740 byte(s)
Diff to previous 91117
<<Merged from trunk#91345.>>

Revision 91117 - (view) (annotate) - [select for diffs]
Modified Fri Feb 1 08:57:09 2013 UTC (6 years, 8 months ago) by jasonw
File length: 369314 byte(s)
Diff to previous 91005
<<Merged from trunk#91110.>>

Revision 91005 - (view) (annotate) - [select for diffs]
Modified Mon Jan 28 14:40:26 2013 UTC (6 years, 8 months ago) by jasonw
File length: 369314 byte(s)
Diff to previous 89535
<<Merged from trunk#90997.>>

Revision 89535 - (view) (annotate) - [select for diffs]
Modified Fri Oct 5 06:46:18 2012 UTC (7 years ago) by jasonw
File length: 369313 byte(s)
Diff to previous 89347
<<Merged from trunk#89534.>>

Revision 89347 - (view) (annotate) - [select for diffs]
Modified Fri Aug 10 15:09:25 2012 UTC (7 years, 2 months ago) by jasonw
File length: 368354 byte(s)
Diff to previous 88968
<<Merged from trunk#89346.>>

Revision 88968 - (view) (annotate) - [select for diffs]
Modified Fri Jun 22 10:24:51 2012 UTC (7 years, 3 months ago) by jasonw
File length: 371136 byte(s)
Diff to previous 88450
<<Merged from trunk#88964.>>


Revision 88450 - (view) (annotate) - [select for diffs]
Modified Fri Mar 23 11:38:32 2012 UTC (7 years, 6 months ago) by jasonw
File length: 370015 byte(s)
Diff to previous 88379
<<Merged from trunk#88449.>>

Revision 88379 - (view) (annotate) - [select for diffs]
Modified Fri Mar 9 09:40:16 2012 UTC (7 years, 7 months ago) by jasonw
File length: 370024 byte(s)
Diff to previous 88353
<<Merged from trunk#88377.>>

Revision 88353 - (view) (annotate) - [select for diffs]
Modified Fri Mar 2 09:14:34 2012 UTC (7 years, 7 months ago) by jasonw
File length: 368818 byte(s)
Diff to previous 88317
<<Merged from trunk#88352.>>

Revision 88317 - (view) (annotate) - [select for diffs]
Modified Fri Feb 17 11:09:12 2012 UTC (7 years, 8 months ago) by jasonw
File length: 368365 byte(s)
Diff to previous 88292
<<Merged from trunk#88316.>>

Revision 88292 - (view) (annotate) - [select for diffs]
Modified Fri Feb 10 08:55:50 2012 UTC (7 years, 8 months ago) by jasonw
File length: 368248 byte(s)
Diff to previous 88212
<<Merged from trunk#88291.>>

Revision 88212 - (view) (annotate) - [select for diffs]
Modified Fri Jan 20 13:30:20 2012 UTC (7 years, 8 months ago) by jasonw
File length: 368243 byte(s)
Diff to previous 88133
<<Merged from trunk#88211.>>

Revision 88133 - (view) (annotate) - [select for diffs]
Modified Fri Dec 23 13:05:49 2011 UTC (7 years, 9 months ago) by jasonw
File length: 368033 byte(s)
Diff to previous 87847
<<Merged from trunk#88132.>>

Revision 87847 - (view) (annotate) - [select for diffs]
Modified Fri Nov 18 09:52:15 2011 UTC (7 years, 11 months ago) by jasonw
File length: 367329 byte(s)
Diff to previous 87470
<<Merged from trunk#87846.>>

Revision 87470 - (view) (annotate) - [select for diffs]
Modified Fri Oct 14 11:57:27 2011 UTC (8 years ago) by jasonw
File length: 367333 byte(s)
Diff to previous 87423
<<Merged from trunk#87469.>>

Revision 87423 - (view) (annotate) - [select for diffs]
Modified Fri Oct 7 08:59:53 2011 UTC (8 years ago) by jasonw
File length: 366693 byte(s)
Diff to previous 87409
<<Merged from trunk#87422.>>

Revision 87409 - (view) (annotate) - [select for diffs]
Modified Wed Oct 5 07:58:20 2011 UTC (8 years ago) by wests
File length: 365821 byte(s)
Diff to previous 87305
Squashed commit of the following:

commit 46e41ab73f9097855de441b20f11a3e137bab0a5
Merge: be0b3a9 8b39ba3
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Oct 4 16:21:35 2011 +0200

    Merge branch 'master' into demonL_inst

commit be0b3a95afa1b2292de26525f57fad4b1f8d3d44
Author: Scott West <scott.gregory.west@gmail.com>
Date:   Sun Sep 25 19:12:24 2011 +0200

    Fixing translation to demonL.

    Old translation didn't set the feature, so feature arguments couldn't
    be resolved to types.

commit 94d6de13bc19bc90d9de5d2fa685244f5fb1bae7
Merge: e128d41 26f3458
Author: Scott West <scott.gregory.west@gmail.com>
Date:   Sun Sep 25 14:16:06 2011 +0200

    Merge branch 'demonL_inst' of bmse-pc251.inf.ethz.ch:/home/scott/src/eve into demonL_inst

commit 26f3458c7ceb8e55289e32ab8308e91795273de9
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Sun Sep 25 14:15:47 2011 +0200

    Adding locals to exported state.

    Still have to restrict them to be mutation free.

commit e128d41204763fdc8e1aa83256d7235fec91b9f9
Merge: 19c8e5a e8fff36
Author: Scott West <scott.gregory.west@gmail.com>
Date:   Sun Sep 25 14:14:37 2011 +0200

    Merge branch 'master' of bmse-pc251.inf.ethz.ch:/home/scott/src/eve into demonL_inst

commit 19c8e5a43bc550445e4bc0f18cf96696a9684ffd
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Sep 21 20:08:07 2011 +0200

    Adding check processing.

    Also adding a convenience function to SSA_SHARED.

commit 1a705d6bd19184c3efb750ba854fb8160c18994f
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Sep 21 20:07:37 2011 +0200

    Allowing old in the body if using the deadplan.

commit 417273f36286741f667ea6c90c610d2cf0208633
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Aug 29 14:42:01 2011 +0200

    Slightly more readable output of goals.

commit 0626e0ddcffb254fd700afb4f33c19c2cfbd2199
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Aug 29 14:41:41 2011 +0200

    Don't both with the sorting of classes.

commit 5153b50f44faf8d5c33f11372cd99754c70994f3
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Aug 19 16:24:06 2011 +0200

    Added new instrumentation and ignored classes.

commit 9041564e8956e734cc3c8035e1650e13a2eca6e6
Author: Scott West <scott.gregory.west@gmail.com>
Date:   Wed Aug 17 07:56:46 2011 +0200

    Re-inheriting SSA_SHARED.

commit 3b5dfa1d9fdf778b3127882d1d56fe1454012547
Merge: 23752e1 0218cc4
Author: Scott West <scott.gregory.west@gmail.com>
Date:   Sat Aug 13 11:32:04 2011 +0200

    Merge branch 'demonL_inst' of bmse-pc251.inf.ethz.ch:/home/scott/src/eve into demonL_inst

    Conflicts:
    	Src/framework/ssa-ifier/expr/ssa_expr_nested.e
    	Src/framework/ssa-ifier/ssa_class_to_demonl.e
    	Src/framework/ssa-ifier/ssa_domainifier.e
    	Src/framework/ssa-ifier/ssa_expr_fixer.e
    	Src/framework/ssa-ifier/ssa_feature_printer.e
    	Src/framework/ssa-ifier/ssaifier.e

commit 0218cc4840e1b5a051b45d4fbb530981ce692109
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Sat Aug 13 11:14:58 2011 +0200

    Adding backup files to gitignore

commit 9475d1841a986fa38f935f64f80fcd137f03f6fc
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Jul 27 10:14:35 2011 +0200

    Adding default (true) rely condition.

commit 0b95538c1ea987fc865fcb518acb08e9e97f8ed6
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Jul 27 10:14:13 2011 +0200

    Adding loop processing, line number tracking.

commit b549a2b776882b5e0ae06424d820e9e7379c9915
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Jul 27 10:13:40 2011 +0200

    Removing debugging ouptput.

commit 9ea5bd006e31893b14e569e9e6fbf698c22a21ca
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Jul 27 10:13:00 2011 +0200

    Using semistrict operator.

commit 34ea8dac90ecc31f62dc92dacbaa4e9c1559a9f6
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Jul 27 10:12:27 2011 +0200

    Adding simple attachment postcondiiton.

commit d5db3795ee13703ef4844226a25214ac425590c3
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Jul 22 10:11:02 2011 +0200

    Fixer now correctly catches access_feat_as locals.

commit 38408fda5ca9f324e1d48cd2f82e0b5c0e515060
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Jul 22 09:59:47 2011 +0200

    Removing debug line.

commit dc92baeb3cb90b6dea9a216de50fbdf3c9241f9e
Author: Scott West <scott.gregory.west@gmail.com>
Date:   Mon Jul 18 10:38:28 2011 +0200

    Actual arguments to nested are now `old'.

commit 86a1c0d72c8b687c8e1d5ad827f58137e2601d0c
Author: Scott West <scott.gregory.west@gmail.com>
Date:   Mon Jul 18 10:37:48 2011 +0200

    Another type of expression that can be processed.

commit f193882feb26872ef13f29085a884b02aa3009ab
Author: Scott West <scott.gregory.west@gmail.com>
Date:   Mon Jul 18 08:49:11 2011 +0200

    Restoring the feature to process

commit b868ee9317c23742850cee572590eb81fa48e34b
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Jul 14 14:58:24 2011 +0200

    Adding Result and create expression support.

commit 14705a65cf5c89badd1ab19ffdbb2d5a45eeb6a8
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jul 12 14:30:08 2011 +0200

    All classes now go in a single domain file.

commit 8c7ebc0b25f3eaed62733f2e642cca8696b66d34
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jul 12 13:59:37 2011 +0200

    Fixed: Current wasn't part of the argument list.

    The argument attributes were being used in the loop, however, this should
    have actually been their copy, with the Current variable as target.

commit 9a7f92a425f93841300203c7d3a4cf4417e56283
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jul 5 10:21:56 2011 +0200

    adding optional prefix to printed variables

commit be97e947c97a9a3d91b2a92d8ce271f33f767dff
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jul 5 10:09:55 2011 +0200

    Consistent naming of ssa-framework classes.

commit 26e8e2820ad03a12ecf367a9af8d08caa0d70bcf
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jul 5 09:56:09 2011 +0200

    Fixing output of boolean constants.

commit a001b68fbb2950154c27c7ebdb980f50c0deb206
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Jun 27 16:43:33 2011 +0200

    Another step towards demonL generation

commit e1879a44d6b8c47e921857613e5a0a5b2a10fd65
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jun 21 13:46:16 2011 +0200

    Totally removing sexpr library.

    Also removing all remaining mentions of sexprs, obviously.

commit 0b26abdae14f23561fd8488efa97c24c6946f7f6
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jun 21 13:39:58 2011 +0200

    Removing mentioned function.

    This was only for frame conditions, which are now handled in the demonL
    language.

commit b096b975d45f21ff2a81a3ff3639bbe8e6b97bf6
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jun 21 13:31:18 2011 +0200

    Renaming skeleton for domain generation.

    In preparation to do demonL domains.

commit db2be3b279746c41cfb33e0450be54964863d6e7
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jun 21 13:28:59 2011 +0200

    Taking out most YICES specific pieces.

    These will be replaced by string generation for demonL.

commit 6b626ee406389fe2aa9a7da2df245312178dc842
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jun 21 08:50:57 2011 +0200

    Last commit before abandoning a lot of code.

commit 3942e6730f1e7e8c2a7e709856b9a7613151b91e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri May 6 17:12:32 2011 +0200

    Restructuring frame conditions.

    Switching to an implication style which should allow finer-grained inferred
    frame conditions.

commit e09564b968f31893d5a533fb3821183a6ba3b843
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon May 2 13:04:16 2011 +0200

    Adding non-void precondition.

commit 41c765e24270beb4fbf48bba8af7b8faa861a401
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon May 2 13:04:06 2011 +0200

    Removing debugging print.

commit 3bdb5f68847396e14bc0c959b3d811c4d38fa4fb
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Apr 19 15:03:07 2011 +0200

    Organizing ssa_shared, fixing the rely.

commit 0516e806930f37575ae7d358785dd701e1187d02
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Apr 19 13:39:47 2011 +0200

    Add contracts, more post-condition processing.

commit 507b7a8a167b3366db37a5f53801df846562be92
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Apr 8 09:52:11 2011 +0200

    Refactor exprs, fix frame condition.

commit e5babdeb8bf19e8616bd791e4498c8d7005a8fab
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Apr 4 16:33:46 2011 +0200

    Adding Void values for references.

    Also adding appropriate preconditions about void.

commit a46cb327e569413ab7c0a16a144dafb49cc02240
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Apr 4 16:33:00 2011 +0200

    Ignoring temp files.

commit 363cbc53bc81e0795575eb1bea2acfb663bca56c
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Apr 4 11:15:05 2011 +0200

    Adding multiple supplier processing.

commit 5c1cd68f002ddd610f1bf48d6a71a3af8a79dc6d
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Apr 1 16:26:34 2011 +0200

    Fixing rely clause generation.

commit a0cb13dfd30bd7518dcfd028e9319189d77b6ec9
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 29 11:11:12 2011 +0200

    Fixing output of frame-related expressions.

commit 6fe0dc344ac1d1deee3ee55b18c184aabac7ad00
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 28 16:16:20 2011 +0200

    Pre-cond extraction now maps Current appropriately.

commit 13bb54d3ffeb31b4f994ffbf2807627558d3bc70
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 28 16:04:19 2011 +0200

    Refining frame functions.

commit 98fd1f81b5645a1ce2b28ae8b4388f3ab4fd6c26
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 28 09:38:44 2011 +0200

    Shifted all domain tag/ref generation into a single file.

commit d81141337a8aa059c43734c877ca034ef40bde60
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 22 15:03:13 2011 +0100

    Adding 'mentioned' generation.

    This is used to generate frame conditions which can exclude
    certain objects (ie, the mentioned ones).

commit ff5ccd278c80f0e5854252b9a9d12ba60d295c53
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 22 15:01:57 2011 +0100

    Domain generation produces general yices file.

    The general yices file pulls together all the type definitions
    and wraps them.

commit 12251e9185aa1847548d9eec359cd5e684d7e1d5
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 22 11:07:03 2011 +0100

    Fixing shared feature global implementation.

commit 929caab94efa4a661a5f5dae25f09544fb696dbe
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 22 10:30:22 2011 +0100

    Adding a mentioned query.

    The mentioned query pulls out all variables that are mentioned
    in an expressionn.

commit 3e63d0993d9fbd0e77f6c9024d7acdfe59122e5c
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 21 14:57:49 2011 +0100

    Generation action for a single class.

commit b60e71a3d9400163fd5f4ece9865f034b0d91bf2
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 21 14:57:24 2011 +0100

    Suppliers processing args, tags, refs-wrapping.

commit 2069c880a94ee71745eeca94b040db41c6efebda
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 21 13:39:21 2011 +0100

    Reorganizing s-expr util, adding supplier processing.

    Some changing around of where the utility functions for s-exprs live.
    Also introducing generation of the module to gather supplier data together
    so more than one class can be used for planning.

commit 9800f9f14081bcc90c7d5abdaa991fde308102b1
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 21 13:11:23 2011 +0100

    Yices generation involving all suppliers.

commit 83457763f2d368f8bf8cd304ee952c6de156e012
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 21 10:14:53 2011 +0100

    Organizing a few features into sections.

commit c6bdbf5d3943b24638f34216edf27ba77879362e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 21 09:39:49 2011 +0100

    using the prefixed_name function

commit 154e06e092503c5572508014ddc154b968a18595
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Mar 18 13:13:07 2011 +0100

    Move some functions to standalone sexpr library.

commit ec817b145ac7b74dcac674a7b3c19ff2471329d0
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Mar 18 10:35:47 2011 +0100

    Adding equality generation sexpr utility.

commit 89c09ad77629d1e06d9b6a0909db7c176e086df8
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 17:07:04 2011 +0100

    Removing unused classes from old instrumentation.

commit 1ae7361d0fb27d510ddea70ab818a7a6f9d1c1d8
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 16:03:29 2011 +0100

    Inserting call to rely_plan in generated code.

commit 05ac9f9aa9fbb52e5d7570f1c266aa15428fb3d1
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 14:40:11 2011 +0100

    Change name to 'instrument', more descriptive.

commit 282cc303984899fbb6b3d68bacce1dc4c2386cd2
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 14:25:41 2011 +0100

    Process ifs and assignments in ssa printer.

commit d5fbb837560fc6e024aea661dbf78d7abe88b600
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 14:25:18 2011 +0100

    Fix pre-conditions of attributes as 'true'.

commit 12f7b3c74002bda85507879f21107a47737d33c0
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 11:24:39 2011 +0100

    Fixing double-output of precondition, cleanups.

    Unnecessary variables related to the old approach have been removed.

commit 79d5d363a0aaa74178a836a5a3eccca07af4694f
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 10:29:16 2011 +0100

    No need to save shared feature_i.

commit 335f94687f69e9872c1557cdbd3c68747ea81b85
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 10:28:51 2011 +0100

    Detabifying feature printer.

commit 1f3bab3629bfd892d38bfe9637d543f0adeedf65
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 16:41:26 2011 +0100

    Preconditions can now be instantiated properly.

    Before, the expression generation worked only for non-instantiated
    arguments, but now those can be mapped to particular expressions
    (actual arguments).

commit d140890a5b86c2465ed8aaa95e78c71d092310a2
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 15:15:54 2011 +0100

    Removing unused local.

commit 2d65e91f6e093553dc030d3bb1a74647ca7b19f3
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 14:57:51 2011 +0100

    untabifying

commit cf907ad87b2ae05372d6aaace7d58b9192e2e45e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 14:57:21 2011 +0100

    Formatting update.

commit 1e1212c3ddb2ded0af811517ab53dff6a7b76edd
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 14:46:38 2011 +0100

    Removing the usage of the ARRAY.

    Replaced this with an ARRAYED_LIST which allows for much cleaner code.

commit 2a8c6d62ab18352e4b4f7fdc37fd1e40f8beb6a3
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 14:36:40 2011 +0100

    Removing additionally unneeded checks.

commit 524d51e48168b0823f0586af5ac58c986587193d
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 14:33:48 2011 +0100

    Removing  initial Result+, result is initially Void.

commit 434a2f8e624c1e09c66455bca3045b8fadd36bb8
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 14:33:03 2011 +0100

    Removing void-branching code, target is always attached.

commit 0537a8eb6223bfbd6021e2ac5fa63504c45e4ec9
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 11:18:41 2011 +0100

    Further removal of old replacement scheme.

commit 936107a57e72cea11d278ee111442046f9931b13
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 11:07:50 2011 +0100

    Removing printed_locals flag.

commit b0e3d378e13b639d11082bfbe772884ee834b0c0
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 11:06:12 2011 +0100

    Continuing to clean out old instrumentation.

    Locals are no longer added, for instance.

commit 4b4d53d3fc2169cdc01553941f82c34ab738485b
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 10:59:42 2011 +0100

    Reworking the expression tree slightly.

    The tree now demands that nested calls have a non-void target.
    To fill this in a new node has been created to take the place of
    Current, (we call it "this" to avoid name overloading).

    Some old replacement code is being stripped away as well.

commit 08cf8cc538061deb639cd36c46e089fbf60ae661
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 10:06:13 2011 +0100

    Adding creation precondition, simplifying all_pre_conds.

    The precondition on the creation procedure should enforce that the
    variable is not a feature, but a true variable (formal argument or local).

    The all_pre_conditions now returns an empty list.

commit 49ab98183dff57585a4c003611f2040f7f4d4a96
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 10:01:44 2011 +0100

    Formatting update.

commit e0946eb8089bf260668a5085905494d6e3eadcf3
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 14 17:38:20 2011 +0100

    Formatting update.

commit 4ff4ec496f8469d8c3a8502707d6084fe7b2c611
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 14 17:27:13 2011 +0100

    First step towards simpler instrumentation.

    Preconditions are extracted from syntax trees and turned into a list
    of s-expressions.

commit 54516ee6de6c49b9fbdc3c51526ba69a1bdd558c
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 14 16:04:50 2011 +0100

    Detabifying ssaifier.e.

commit e0ea75c916fafa31ee0aeae9c65ee37f1120eaf7
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Mar 9 09:47:01 2011 +0100

    Reworking the index lambda.

commit 6622ce763ec3e6096064827afc4efd635f24b427
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Mar 9 09:46:15 2011 +0100

    Fixing boolean output, lower-case only.

commit 7d17b4b7baad3e84c328c4cb3c439f9c9c27a594
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Mar 9 09:44:56 2011 +0100

    Fixing once would should have been a 'do'.

commit c2c3e58e0517ebb403fd109bf9c3983f371b32b3
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Mar 2 13:28:10 2011 +0100

    Generating frame only after functions and attributes.

commit a63df48b1f67cf60cf131c91299a9cc3b67df407
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Mar 2 13:26:56 2011 +0100

    Changing delcaration generation to omit parentheses.

commit ad4ddf111b3d6a14b2cd7d269a87ca12707174f5
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Mar 2 12:39:03 2011 +0100

    Using BOOL_AS.value now to get literal boolean.

commit 116c6364751b9b67b9d06cebf6fe4d3bbf621da2
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Mar 2 11:18:00 2011 +0100

    Process `Result=' style funcs, fix index in procedures.

    Adding a few utility function to generate the indexed-lambda,
    and changing the name of the attribute_name to a more general
    prefixed_name as it will work on any type and string.

commit 6c59b3073b23c8c4084db314b0b3f0dda8221292
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 17:02:39 2011 +0100

    Add stub generating lambda for Eiffel functions.

commit e6aa668148482a8baacc7f8ebb7445a68801df63
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 17:00:22 2011 +0100

    Updating variable name in mk_lambda.

commit cbb668547f74c849a8a390a2620b164fb2c8b4a2
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:44:50 2011 +0100

    Formatting update.

commit 3ab5b118cad92d4d66a3155b91d0a1bd18ce60b2
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:35:35 2011 +0100

    Setting the shared feature_i from the domain generation.

commit 5c0335097037de74b52e53a1012c465f9d3b8a65
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:34:52 2011 +0100

    Nested features now use `type.

    Also added a new feature which gets the type of the target, as it can be
    Void is must be treated specially.

commit b89bbb7f7dec42a8b53eefbcc759a52a2c074461
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:34:29 2011 +0100

    SSA_EXPR_VAR now uses the `type' feature.

commit e66aaa4f11d6875d53beff8b0318fe62ea1f1dba
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:33:53 2011 +0100

    Overriding new type feature when the operator is `old'

commit c36075471aa52ea0567ff4fa2dde1778b4062ba6
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:31:21 2011 +0100

    Adding a `type' feature to SSA_EXPR.

commit 4aa4c45a439429a1dcfef0f66085ce2870f15a99
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:29:58 2011 +0100

    DOMAINIFIER now uses SSA_SHARED

commit cf65f3eb10e838f48feac2f5f62b6790f389fefa
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:29:24 2011 +0100

    Using a CELL internally in SSA_SHARED.

commit c611cfe89dc62d5def41608782476e104be0fbff
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:29:05 2011 +0100

    Removing debugging print.

commit 718ede55272af0cacf82cca9231e58ed16085377
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 12:01:10 2011 +0100

    Fixing indentation: spaces -> tabs.

commit c6d2b0ef6029227d88b5e615f1856d9150eda220
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 10:09:53 2011 +0100

    Adding conversion function from classes to names.

    This makes it possible to remove generic arguments from types. Any function
    which was generating its own prefix based on classes now uses this.

commit e1549a54126f34fe5b407dcdc058535830b34a09
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 09:18:51 2011 +0100

    Adding frame generation, name conversion utilities.

    The name conversion utilities are to try to combat some fragility in the
    way names are generated.

commit a3c21669b6acf4303443747bd5c0d3e980d23972
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 08:46:10 2011 +0100

    Formatting changes.

commit ff4866f3388a494b48930e0ee28b232daae0ac6b
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 24 11:20:04 2011 +0100

    Off by one in "this"-prepended arguments of a nested call.

commit 6630e6399581fdd5f99caeda8d4f84d8ed6384f0
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 24 11:13:28 2011 +0100

    Ignore class invariant processing.

commit d5b373da96f6e1fe8a97c818492df288377c0ff7
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 24 11:12:05 2011 +0100

    Check-false -> print TODO for converting functions.

commit de50c955a318ab7dd05f89ef04e38b407fd0a750
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 14:55:55 2011 +0100

    Cleaning up small items.

commit fc426478d612547e2fd5255d722a6cd61a173a80
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 13:52:11 2011 +0100

    File output using domain_string from the yices domain class.

commit 52e0299c16825c7de0e7f5316e1b3adbee069c33
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 13:51:22 2011 +0100

    New feature to convert class to yices string.

commit bbd76d74028bd64231ce69dd224dbe044f53875d
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 13:45:14 2011 +0100

    Output the domain now into a file, rather than stdio.

commit 1de673368894763300cbb2d6d38b0e28a367c123
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 13:04:50 2011 +0100

    Generate action tags.

commit 4c43b40d63279e1e1cb629b2bd2d68bc5c910ce7
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 12:57:18 2011 +0100

    Adding define_type and mk_scalar functions.

    These are now used to reformulate the temp objects for a given class.

commit 69c0e4d5c4152849658edd8ac6e4d7bd5c23efff
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 11:18:06 2011 +0100

    Using the mk_and utility function.

commit 28e785d7c98470e6585181a974086ee5072666fa
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 10:15:36 2011 +0100

    Updating formating.

commit 67ffe587a64574e273bc486d6a1468266c23539e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 09:49:32 2011 +0100

    Using mk_list in ssa nested expressions.

commit f468178133f2c62a5660136083d9f1d76967ce6f
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 09:48:55 2011 +0100

    Now using mk_list in yices domain generation.

commit df65ef57db0871f474c3e37ccde965e5d2bb1aeb
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 09:48:01 2011 +0100

    Using now mk_list in yices utilities.

commit e44c209068e383666de1e7b72d494094bc2456ae
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 09:47:03 2011 +0100

    Updating declaration generation.

    Removing the outer parenthesis to be more in line with what YICES uses for syntax.
    The other may have worked, but this seems more idiomatic from the documentation of YICES.

commit f6c8e7ad7bd2aff3cb460b22d24113dc34183fd9
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 09:44:42 2011 +0100

    Adding mk_list s-expression utility.

commit 50569673a15eba7df06a670abb3d84dbc62fce3e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 17:19:06 2011 +0100

    Refactored ssa_yices_domain.

    The common yices functionality now lives in a utility class,  allowing
    the domain construction class to be much smaller and cleaner.

commit 7347c8a49367c45ce35462cfc3186cbe1db24ac7
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 17:18:47 2011 +0100

    Domainifier now prints out the yices domain.

    This is just a temporary thing so it can be seen easily while worked on. The output
    was moved here so that the ssa-yices-domain class could be cleaned up.

commit 89ce35251c91b4a6465abf630054d3daa75d22d3
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 16:23:43 2011 +0100

    Changing static type of empty_list to ARRAYED_LIST.

commit 43a56ce9c8fe1e991be9625816a572a47258d389
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 16:21:50 2011 +0100

    Domain now returns a single sexpr.

    Debugging printing of the class domain has now been removed as well.

commit 76f08ee37dccf7573523391aaaa4a1fcfe4af100
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:52:00 2011 +0100

    Removing obsolete feature call.

commit 42180cebc9c509f126030cb09346af51baf16c6f
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:46:33 2011 +0100

    Fixing function calls with indices.

    Now the indexes are used to form the function call, before
    they were omitted.

commit d301a515d3ef4464f6039c6299b20b7db99b2ecc
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:45:06 2011 +0100

    Enhancing expression fixer.

    The fixer now incorporates the argument list so it can distinguish
    formal arguments from unqualified calls.

    Related updates have been made in the clients.

commit 70fd0f90a60596aab8c3ba36649fec662778e0a6
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:18:47 2011 +0100

    Untabing expr_fixer.

commit ed3de15f2ec344c6fff6ae376bab3ed6b76e3162
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:09:37 2011 +0100

    Fixing runtime crashes and some output bugs.

commit c8f4624820b8b38f6d6e4f5c437f1086c12149b4
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:09:19 2011 +0100

    Adding invariants to class descr.

commit 61e940be11b0400e15b85e4cc9d773373c551266
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:07:50 2011 +0100

    Inserting calls to yices domain conversion.

commit 1759b3c75574b83df509bcf7e9d57ffbeb1a6e91
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:07:22 2011 +0100

    Including invariants in declarations.

commit a8aa500470e15bfc03f9c73e939cb75e03c50e4d
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:06:59 2011 +0100

    Initializing arguments list in feature descr.

commit d672fcb007766d96328372e9831cf28f2e82f465
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Feb 21 17:07:43 2011 +0100

    Class-to-yices pre-post condition conversion.

commit 097e27cb3bed2eaee44feb0aa9594e40706bc5de
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Feb 21 16:37:28 2011 +0100

    Add function to translate args to types.

    The argument declarations are taken in combination with the target type
    to generate a type declaration that includes all names/types.

commit 6d29954ed711e5e1f062006fb226f2ca75fa0708
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Feb 21 15:36:54 2011 +0100

    Cleaning, adding some skeleton implementations.

commit ee040cd44f42a8f211f76687eb5648503304b111
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Feb 21 15:36:17 2011 +0100

    Updating ssa expressions to convert to sexprs.

commit 1579958642576d0f14ee242ae5ce9e486d283487
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Feb 21 14:30:20 2011 +0100

    Updates to yices domain conversion, sexpr utils.

    The class description is now based on type, not name. Suitable updates
    have been made to the higher-level classes to use this convention.

commit 3246b240ab50b942659a49a9c33412d20a533ad9
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 18:05:42 2011 +0100

    Adding utility and ecf for sexprs.

commit 4898c3fc23f2c0bf316eb0cb4106ad1d7fe1a278
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 18:04:39 2011 +0100

    Skeleton of description to domain transformation.

commit f3800c47c5c7bfe7b594723c9848a0b930602f66
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 18:04:04 2011 +0100

    Adding yices domain class to class transformation.

commit 35d798036286936f959467ad6d566788d37d2c2f
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 18:01:07 2011 +0100

    Fixing for new sexpr class.

commit 4b506c62691ac36a3b4330dda807f8bb9acd9411
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 16:36:38 2011 +0100

    Converting to use sexpr library.

    This change is part of the move to yices as a planning back-end.

commit fb502e6445c8ffdcc49c5cd3edf8d7ffb9025514
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 15:20:55 2011 +0100

    Fixing typo in sexpr_const

commit 777910df43ab68c68b09327a57c079b414b242fb
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 13:34:48 2011 +0100

    Removing unneeded expression types.

commit ce6182c4a849036e88ef4713369b5374534e5da2
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 13:33:49 2011 +0100

    Renaming expression classes to include sexpr.

commit 7cd65293624df8f6eeec228e3dcf220cf29077db
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 13:30:29 2011 +0100

    Moving sexprs into their own module.

commit a92c5d7fb30e69b0721924f47398a38a375b5e4e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 17 17:16:51 2011 +0100

    Adding yices conversion class.

commit 7bd20b2631b2f22adb08d1f823b1f6d67f8fe81f
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 17 17:16:23 2011 +0100

    Fixing small compile errors.

commit 57c1d058ee67ab1426fa5442b9fa14d8dde8e381
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 17 17:16:11 2011 +0100

    Fixing typo.

commit c45a4c0990eae3dde9780ddc186c2c93a10a3cf9
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 17 16:28:29 2011 +0100

    Adding arguments to feature description.

commit 52f32e23eedb03cdee4e9ef0c2e2a3e053233c43
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 17 16:27:07 2011 +0100

    Yices conversion now generates *_desc classes.

commit f1c352a6a7aaa147939668502d5ef2213bffde27
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 17 14:15:43 2011 +0100

    Adding classes for describing classes and features.

commit 990de73d679dbb01a5426f34164d323f4b5cdd78
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 17 13:57:14 2011 +0100

    Copy of class_to_domain for SMT encoding.

commit 2bd710e1a9c7ce5d5b056d131e2b4865b5ab2196
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 17 13:50:20 2011 +0100

    Renaming inconsistent class/filenamed pre_to_adl.

commit d3fbf4ad78f6c1970c6395989a6aa2028b9b72e7
Author: S <saynte@gmail.com>
Date:   Mon Feb 7 00:07:37 2011 +0100

    Adding back inclusion of target.

    This broke the previous instrumentation.

commit 8cc4a35d9146a6ce2bc55e8548e3722c5c98dfb2
Author: S <saynte@gmail.com>
Date:   Sun Feb 6 22:38:56 2011 +0100

    Adding gitignore.

commit 419125905c43f51b22575a17d75505e97e46b0ab
Author: S <saynte@gmail.com>
Date:   Sun Feb 6 22:17:41 2011 +0100

    Removing parameter serialization.

    This is now taken care of by the arguments, due to the replacement
    in the rely condition we can do this.

commit efe98d796f639b536aee7d96003ae92d256425c1
Author: S <saynte@gmail.com>
Date:   Sun Feb 6 22:15:48 2011 +0100

    Track assignments with a parameter as source.

    When we have an assignment from a parameter, we store it so we can
    update rely-conditions with it.

commit 518b963310844a1e51f4ee4e01b382d0b1c7791f
Author: scott <scott@scott-desktop.(none)>
Date:   Sun Feb 6 18:21:15 2011 +0100

    Initial commit of demonic testing branch.

commit 23752e1c67f81ffa10779784a50b444c87807527
Author: Scott West <scott.gregory.west@gmail.com>
Date:   Mon Jul 18 10:38:28 2011 +0200

    Actual arguments to nested are now `old'.

commit b1ac2779355b014c9415a6b9854ab8f7cd22ae7c
Author: Scott West <scott.gregory.west@gmail.com>
Date:   Mon Jul 18 10:37:48 2011 +0200

    Another type of expression that can be processed.

commit 876980f239766627ab7cc31e35d894c632b9e2c1
Author: Scott West <scott.gregory.west@gmail.com>
Date:   Mon Jul 18 08:49:11 2011 +0200

    Restoring the feature to process

commit 26197d391a2676f2afff7fa63613334e2e95d8fd
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Jul 14 14:58:24 2011 +0200

    Adding Result and create expression support.

commit dbada28ad461703822dde243cf3bac724ad1ec21
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jul 12 14:30:08 2011 +0200

    All classes now go in a single domain file.

commit 70d30d291fabcfd038b3e0fa6da99140a353f6f6
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jul 12 13:59:37 2011 +0200

    Fixed: Current wasn't part of the argument list.

    The argument attributes were being used in the loop, however, this should
    have actually been their copy, with the Current variable as target.

commit 11e47856f38dd2d941dee2924aa226c783b8710b
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jul 5 10:21:56 2011 +0200

    adding optional prefix to printed variables

commit 4034ac8242eb2f699d8795ec58561365392d6ed0
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jul 5 10:09:55 2011 +0200

    Consistent naming of ssa-framework classes.

commit 1235319acc72fbad0504aa85130341e18b24b25d
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jul 5 09:56:09 2011 +0200

    Fixing output of boolean constants.

commit 65873dce6cea25585cfd77da94e56f9c86a5665b
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Jun 27 16:43:33 2011 +0200

    Another step towards demonL generation

commit c8f0360184c93e6347ee6e29742f9486d7ef19e9
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jun 21 13:46:16 2011 +0200

    Totally removing sexpr library.

    Also removing all remaining mentions of sexprs, obviously.

commit 96657cbb23294ff2dc9541651a2364e4a688ad9f
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jun 21 13:39:58 2011 +0200

    Removing mentioned function.

    This was only for frame conditions, which are now handled in the demonL
    language.

commit 43861ac3fec565ee2c099e1a78a5a8de73846c23
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jun 21 13:31:18 2011 +0200

    Renaming skeleton for domain generation.

    In preparation to do demonL domains.

commit cecd3440b523c2f120a667308ce3ccde4f28636a
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jun 21 13:28:59 2011 +0200

    Taking out most YICES specific pieces.

    These will be replaced by string generation for demonL.

commit bba8fd8cc64fd6c47f3e06a32824e57738c6ebcf
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Jun 21 08:50:57 2011 +0200

    Last commit before abandoning a lot of code.

commit b2d87d9d1babd0012ce5de9cb197a493d191af78
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri May 6 17:12:32 2011 +0200

    Restructuring frame conditions.

    Switching to an implication style which should allow finer-grained inferred
    frame conditions.

commit 1d94188e0d9c8c61c656da4b880ec7e029a6df0c
Merge: 3af0264 b58042e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon May 2 14:03:55 2011 +0200

    Merge branch 'master' into simpler_ssa

    Conflicts:
    	.gitignore

commit 3af026488bc3ac7636dcee56abd5569fe66c5230
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon May 2 13:04:16 2011 +0200

    Adding non-void precondition.

commit f8d72cf4274472b1a9c97dd707e88e2c957c9715
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon May 2 13:04:06 2011 +0200

    Removing debugging print.

commit 733ac5c7527bd54c97e820f36fd85c599fb64a58
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Apr 19 15:03:07 2011 +0200

    Organizing ssa_shared, fixing the rely.

commit 693495e6c92f3ca71347b751bb209b71d20ccb2e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Apr 19 13:39:47 2011 +0200

    Add contracts, more post-condition processing.

commit b3c81caeaa5d041a33e776eecdce50b54beb5d4b
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Apr 8 09:52:11 2011 +0200

    Refactor exprs, fix frame condition.

commit 8ba615b7630f6afa4f005065964a706cbd0451e6
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Apr 4 16:33:46 2011 +0200

    Adding Void values for references.

    Also adding appropriate preconditions about void.

commit b500c610e47bc6a4d05eccb96f3a6aff490fa50d
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Apr 4 16:33:00 2011 +0200

    Ignoring temp files.

commit b634be6eb7a702a8091817efa7ee2d8f0586a042
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Apr 4 11:15:05 2011 +0200

    Adding multiple supplier processing.

commit 2609cbd67ed7417450453452d3b458c05cdf2170
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Apr 1 16:26:34 2011 +0200

    Fixing rely clause generation.

commit d13e574eaffa8be301b7a2346d6954996b976c70
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 29 11:11:12 2011 +0200

    Fixing output of frame-related expressions.

commit 4ea505dfd88c0d4bcee66df3f9823f0969ca4d08
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 28 16:16:20 2011 +0200

    Pre-cond extraction now maps Current appropriately.

commit 2ebd30829413669f90100e93192bb6922c4bef9a
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 28 16:04:19 2011 +0200

    Refining frame functions.

commit e3ecb5997a39a7813ecaf6483fbb5b9910b31d86
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 28 09:38:44 2011 +0200

    Shifted all domain tag/ref generation into a single file.

commit 8e68414a3dc767dbeb589172e82dfbd5339ab569
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 22 15:03:13 2011 +0100

    Adding 'mentioned' generation.

    This is used to generate frame conditions which can exclude
    certain objects (ie, the mentioned ones).

commit cbc6b82f4a00314b3ae76d7eb513c37d31d1dca3
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 22 15:01:57 2011 +0100

    Domain generation produces general yices file.

    The general yices file pulls together all the type definitions
    and wraps them.

commit 489bffafddda0f22277737b5f3c6130d23371d10
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 22 11:07:03 2011 +0100

    Fixing shared feature global implementation.

commit c352581a87c596ecd3f9ae0ccb1754a143048094
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 22 10:30:22 2011 +0100

    Adding a mentioned query.

    The mentioned query pulls out all variables that are mentioned
    in an expressionn.

commit 741858863ce9538bfa7ededbec6de7f0d1cdb039
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 21 14:57:49 2011 +0100

    Generation action for a single class.

commit 65afc9d130897a9a45c9b595c7c232943389b94c
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 21 14:57:24 2011 +0100

    Suppliers processing args, tags, refs-wrapping.

commit e14e2f93b3306b914b6a4615883f98703a08b43e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 21 13:39:21 2011 +0100

    Reorganizing s-expr util, adding supplier processing.

    Some changing around of where the utility functions for s-exprs live.
    Also introducing generation of the module to gather supplier data together
    so more than one class can be used for planning.

commit 1ca7cb0bcb4343886af2da501da77e017c64f5a6
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 21 13:11:23 2011 +0100

    Yices generation involving all suppliers.

commit c68c206102d10e3a8b7ae105f64d2d46ca894075
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 21 10:14:53 2011 +0100

    Organizing a few features into sections.

commit 78c4d33f536acea3f9db88c5a234e89a54bce257
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 21 09:39:49 2011 +0100

    using the prefixed_name function

commit 8c3f0e2e1966b78bfd11d438ac0d58434774680e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Mar 18 13:13:07 2011 +0100

    Move some functions to standalone sexpr library.

commit 208f0a2f515e4d0309a36c718283db00dbbd6d3f
Merge: e0e4f9c 09adbc3
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Mar 18 11:19:56 2011 +0100

    Merge branch 'master' into simpler_ssa

commit e0e4f9c76abfa98dca19ff59ec5375358dfd8a45
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Mar 18 10:35:47 2011 +0100

    Adding equality generation sexpr utility.

commit e2baf8b05b761e804adf6a3d474124ac0638f10b
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 17:07:04 2011 +0100

    Removing unused classes from old instrumentation.

commit fe15c217505ce0142ff6c8d336b67477b259dee9
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 16:03:29 2011 +0100

    Inserting call to rely_plan in generated code.

commit 10c800811f37772228271048916dd8e0d0002752
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 14:40:11 2011 +0100

    Change name to 'instrument', more descriptive.

commit cf01280d30dccd8a106c34b25bf44a4343ccee6f
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 14:25:41 2011 +0100

    Process ifs and assignments in ssa printer.

commit 07f2c5aa00ba88178cd12b003dd482ae691732e6
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 14:25:18 2011 +0100

    Fix pre-conditions of attributes as 'true'.

commit aff4e839685c3a6d05831e03a67a8be3d647316e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 11:24:39 2011 +0100

    Fixing double-output of precondition, cleanups.

    Unnecessary variables related to the old approach have been removed.

commit 7fe990976da7e3dd33359942683045422b1b863b
Merge: 9134fe8 f8c33db
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 10:31:35 2011 +0100

    Merge branch 'master' into simpler_ssa

    Conflicts:
    	Src/Eiffel/Ace/ec.ecf

commit 9134fe898345e50a89c0df31978eb028394813b1
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 10:29:16 2011 +0100

    No need to save shared feature_i.

commit 63b2523cfb7bfb55c4e4862546be6b3912e1699d
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Mar 17 10:28:51 2011 +0100

    Detabifying feature printer.

commit b476086f08189f30ea4e5c860cd12a71c0033b9f
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 16:41:26 2011 +0100

    Preconditions can now be instantiated properly.

    Before, the expression generation worked only for non-instantiated
    arguments, but now those can be mapped to particular expressions
    (actual arguments).

commit 6e50f618f2aa6e75c08920aee749c7c8a549acbe
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 15:15:54 2011 +0100

    Removing unused local.

commit fb23cc38217f51912a6e54f6dd31c74cfcce91b0
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 14:57:51 2011 +0100

    untabifying

commit 03b87ee48601bcba1fe6058c2efd430a0444a5a6
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 14:57:21 2011 +0100

    Formatting update.

commit 2889d6e2090a29337ec412cfb5c4a33085d6e130
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 14:46:38 2011 +0100

    Removing the usage of the ARRAY.

    Replaced this with an ARRAYED_LIST which allows for much cleaner code.

commit 653b52fb64238bc2f57833aacd58314b882503c6
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 14:36:40 2011 +0100

    Removing additionally unneeded checks.

commit 0c686c4dd832a684f0fe22fd153c9da254332abc
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 14:33:48 2011 +0100

    Removing  initial Result+, result is initially Void.

commit 6b0cb7e50381e08a8b2410a57c67a173fcfe51a1
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 14:33:03 2011 +0100

    Removing void-branching code, target is always attached.

commit 3cfd6c06174fcbb7e0c4ee3225cf6eb6edf431cd
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 11:18:41 2011 +0100

    Further removal of old replacement scheme.

commit e16fabaa720b123ef2cacdcd341df9e45c3694d5
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 11:07:50 2011 +0100

    Removing printed_locals flag.

commit eef58a1ba15af9623c5b471784414172b6751839
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 11:06:12 2011 +0100

    Continuing to clean out old instrumentation.

    Locals are no longer added, for instance.

commit 01c4bdb57054d38960d2a16f029c2956b4d21398
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 10:59:42 2011 +0100

    Reworking the expression tree slightly.

    The tree now demands that nested calls have a non-void target.
    To fill this in a new node has been created to take the place of
    Current, (we call it "this" to avoid name overloading).

    Some old replacement code is being stripped away as well.

commit fe84c1867496c8cb5dc2409f9074c955862c2566
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 10:06:13 2011 +0100

    Adding creation precondition, simplifying all_pre_conds.

    The precondition on the creation procedure should enforce that the
    variable is not a feature, but a true variable (formal argument or local).

    The all_pre_conditions now returns an empty list.

commit ed8dda1920ec3f76afd6bc5e86dba8e7f6491204
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 15 10:01:44 2011 +0100

    Formatting update.

commit 5cb8e526d349a2eb301ea9501719413cd184c7d9
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 14 17:38:20 2011 +0100

    Formatting update.

commit 96dd74ee71edd33eeeb739b0be730e6e7d736e5d
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 14 17:27:13 2011 +0100

    First step towards simpler instrumentation.

    Preconditions are extracted from syntax trees and turned into a list
    of s-expressions.

commit 714969891d55318fa649eab162c3bf44df01c38c
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 14 16:04:50 2011 +0100

    Detabifying ssaifier.e.

commit 696b9cc0eaf2ed4be5a8c3a0791c760ed68f44ff
Merge: ad2b9bf da9948f
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Mar 14 14:16:03 2011 +0100

    Merge branch 'master' into demonic_testing

commit ad2b9bf0a12077a1be23148017e78b1b5467231b
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Mar 9 09:47:01 2011 +0100

    Reworking the index lambda.

commit 62418173d5c0397b272eff1f6945774bebd2d54a
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Mar 9 09:46:15 2011 +0100

    Fixing boolean output, lower-case only.

commit f9720d1cf03d10dcb579813e5c97003fc729e964
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Mar 9 09:44:56 2011 +0100

    Fixing once would should have been a 'do'.

commit b65149b1266994dfad4dddb07b37054c4171dad2
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Mar 2 13:28:10 2011 +0100

    Generating frame only after functions and attributes.

commit 0351223afe87e17a71bf1916ea9855298d7f0d5b
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Mar 2 13:26:56 2011 +0100

    Changing delcaration generation to omit parentheses.

commit 636bcbf817c554aba36ea8601f91cd40374c2ab9
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Mar 2 12:39:03 2011 +0100

    Using BOOL_AS.value now to get literal boolean.

commit 710d022f848e436ac2497ef6421fcc526289ca53
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Mar 2 11:18:00 2011 +0100

    Process `Result=' style funcs, fix index in procedures.

    Adding a few utility function to generate the indexed-lambda,
    and changing the name of the attribute_name to a more general
    prefixed_name as it will work on any type and string.

commit d2083f406327864aa8dbbb04922ffaeb02a32249
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 17:02:39 2011 +0100

    Add stub generating lambda for Eiffel functions.

commit f1e71025d9675b50b161742d4bd7dbb9113b6eb3
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 17:00:22 2011 +0100

    Updating variable name in mk_lambda.

commit 0f473c2efd459fc56a10f54b0cd2f29579ce6b7e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:44:50 2011 +0100

    Formatting update.

commit 39389ea845c2f78b00cf777edb6252138a66d422
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:35:35 2011 +0100

    Setting the shared feature_i from the domain generation.

commit 3902c5cd645e9675f671c2fe90b0e88fcf96facc
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:34:52 2011 +0100

    Nested features now use `type.

    Also added a new feature which gets the type of the target, as it can be
    Void is must be treated specially.

commit 8f674e47fedfb75a508eda5f0b7d912fa01f99bc
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:34:29 2011 +0100

    SSA_EXPR_VAR now uses the `type' feature.

commit 536f7da8339b819ab03f74b6c8a7cbce8f071c2c
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:33:53 2011 +0100

    Overriding new type feature when the operator is `old'

commit c102bf406dfcb7fc2936528a74ee65e2e49e48f7
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:31:21 2011 +0100

    Adding a `type' feature to SSA_EXPR.

commit 99742e1f60eeb079f3404d8b8841bc6748a18e62
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:29:58 2011 +0100

    DOMAINIFIER now uses SSA_SHARED

commit 1633341fe4a563f5791045a8d67ae4a0c8790c64
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:29:24 2011 +0100

    Using a CELL internally in SSA_SHARED.

commit d01d1bcde8a2484720365620e5c6bca61633091d
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 16:29:05 2011 +0100

    Removing debugging print.

commit 1c48dd9ec5e1a028a235b3373b8201ec261a9079
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 12:01:10 2011 +0100

    Fixing indentation: spaces -> tabs.

commit b1bd6eb0defbe50865a15d645247bc0a46c7582e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 10:09:53 2011 +0100

    Adding conversion function from classes to names.

    This makes it possible to remove generic arguments from types. Any function
    which was generating its own prefix based on classes now uses this.

commit e1bc84fcb27df0994328e88328499c255f0047a5
Merge: b0b1adc 950b7bb
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 09:20:09 2011 +0100

    Merge branch 'master' into demonic_testing

commit b0b1adc0575cb1f684b50086800709ecfe9aec21
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 09:18:51 2011 +0100

    Adding frame generation, name conversion utilities.

    The name conversion utilities are to try to combat some fragility in the
    way names are generated.

commit 09fb2f9c81fdd6886dac271905071f54111dc94e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Mar 1 08:46:10 2011 +0100

    Formatting changes.

commit d1a2b47c6ef769e7769fb251db4c5842be3106b0
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 24 11:20:04 2011 +0100

    Off by one in "this"-prepended arguments of a nested call.

commit 687e138f4f9e6fa68953e33819bb5bae0255edcf
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 24 11:13:28 2011 +0100

    Ignore class invariant processing.

commit 79bd76adc5ce5f9359130aa7b42645c89eaeb0b0
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 24 11:12:05 2011 +0100

    Check-false -> print TODO for converting functions.

commit 9432da19de72af94a98ce802d25e2eba30b19d16
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 14:55:55 2011 +0100

    Cleaning up small items.

commit 33383cf11f39b88bd052fa2ef8542736456fe63d
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 13:52:11 2011 +0100

    File output using domain_string from the yices domain class.

commit 4d8bbb64dfa9a2c8d0629231f6b4bbeda678c75b
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 13:51:22 2011 +0100

    New feature to convert class to yices string.

commit b78a1c793d55aa6a345ab5da21114c5f0db0df09
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 13:45:14 2011 +0100

    Output the domain now into a file, rather than stdio.

commit e085264a05d1ed0c728975c76c6db85c89d948b2
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 13:04:50 2011 +0100

    Generate action tags.

commit b4813e6fd2cae494c13b7ea1c8e397e7ccdf4b72
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 12:57:18 2011 +0100

    Adding define_type and mk_scalar functions.

    These are now used to reformulate the temp objects for a given class.

commit 1114ae6829055d6bef76765c12dedfac101e7dd3
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 11:18:06 2011 +0100

    Using the mk_and utility function.

commit 38b7172c333caee417d7b0909023fa32af5b7e69
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 10:15:36 2011 +0100

    Updating formating.

commit 6d0711467d8c07ef004e6635849fc0ea24864488
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 09:49:32 2011 +0100

    Using mk_list in ssa nested expressions.

commit b99e099badcb342bd8074ffd276cc5bbb7e24b3b
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 09:48:55 2011 +0100

    Now using mk_list in yices domain generation.

commit 4778c96afb90b4d6490d81425211c669f6448c23
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 09:48:01 2011 +0100

    Using now mk_list in yices utilities.

commit d05e3c52f11490d0dbcb8bb9f9d3bc1b3e198001
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 09:47:03 2011 +0100

    Updating declaration generation.

    Removing the outer parenthesis to be more in line with what YICES uses for syntax.
    The other may have worked, but this seems more idiomatic from the documentation of YICES.

commit 50960d2a174d04fa4593de793a07eaa0a4b60a9b
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Wed Feb 23 09:44:42 2011 +0100

    Adding mk_list s-expression utility.

commit a1ff3efac1a10d5b9af03bc788993670944af652
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 17:19:06 2011 +0100

    Refactored ssa_yices_domain.

    The common yices functionality now lives in a utility class,  allowing
    the domain construction class to be much smaller and cleaner.

commit 49a99adaec60dcdf5c3d9687031aa2eaf9cc53fb
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 17:18:47 2011 +0100

    Domainifier now prints out the yices domain.

    This is just a temporary thing so it can be seen easily while worked on. The output
    was moved here so that the ssa-yices-domain class could be cleaned up.

commit 30107513bc23ef6d416390b54598654aec9cf727
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 16:23:43 2011 +0100

    Changing static type of empty_list to ARRAYED_LIST.

commit 74e9e68a22e699e5426c2aed977cd305b80056dc
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 16:21:50 2011 +0100

    Domain now returns a single sexpr.

    Debugging printing of the class domain has now been removed as well.

commit 29f713d6a1991a1089b893f3012b2d141bdea19d
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:52:00 2011 +0100

    Removing obsolete feature call.

commit 113b7c0a53fd2dc35b7cfc03e990d27492a8c0ee
Merge: 1b8408f 7e32534
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:47:37 2011 +0100

    Merge branch 'master' into demonic_testing

commit 1b8408f7610005486cb4af9087d1183db94f18b6
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:46:33 2011 +0100

    Fixing function calls with indices.

    Now the indexes are used to form the function call, before
    they were omitted.

commit d5bfa513693ce6f5f8559cba4dbe912bfdd76f0e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:45:06 2011 +0100

    Enhancing expression fixer.

    The fixer now incorporates the argument list so it can distinguish
    formal arguments from unqualified calls.

    Related updates have been made in the clients.

commit 29dd4d39ba0cb26e983940ad2a61f59ea77e6414
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:18:47 2011 +0100

    Untabing expr_fixer.

commit ac4e3297dc87f00cc3d8c537810e780fa5b5d1ba
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:09:37 2011 +0100

    Fixing runtime crashes and some output bugs.

commit e5fa7cd116ff3677bbe243fc218743468f213ccf
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:09:19 2011 +0100

    Adding invariants to class descr.

commit 7dfdc5255b77d7fa65093bd39ecc48feaa82df8b
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:07:50 2011 +0100

    Inserting calls to yices domain conversion.

commit 15233ddf4442d3266b929e98c0c4bf6b4353e762
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:07:22 2011 +0100

    Including invariants in declarations.

commit c650764419923c783932c4968f493235a2078a0e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 22 14:06:59 2011 +0100

    Initializing arguments list in feature descr.

commit 72c7823cf444542ba5be8ea92a60bac26781a106
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Feb 21 17:07:43 2011 +0100

    Class-to-yices pre-post condition conversion.

commit 67f3562748e06864e6dd77486eb196a27c72de37
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Feb 21 16:37:28 2011 +0100

    Add function to translate args to types.

    The argument declarations are taken in combination with the target type
    to generate a type declaration that includes all names/types.

commit a02dc912ac0045f7a080e6a72cb953a9bf02772b
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Feb 21 15:36:54 2011 +0100

    Cleaning, adding some skeleton implementations.

commit 6a6a39d01034c10a216c729e8e901508a3265679
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Feb 21 15:36:17 2011 +0100

    Updating ssa expressions to convert to sexprs.

commit 4420a50c305b2c0614b8e940de1556d626b0403d
Merge: 9d12b43 c5083f0
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Feb 21 14:31:45 2011 +0100

    Merge branch 'master' into demonic_testing

commit 9d12b4346ce11faa93435755f6ba4e76f86047b7
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Mon Feb 21 14:30:20 2011 +0100

    Updates to yices domain conversion, sexpr utils.

    The class description is now based on type, not name. Suitable updates
    have been made to the higher-level classes to use this convention.

commit ad3fba02ba8446fb4336661d020c63520ccb9604
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 18:05:42 2011 +0100

    Adding utility and ecf for sexprs.

commit a1f146582e0e17339aa6f31979a2f1156d503365
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 18:04:39 2011 +0100

    Skeleton of description to domain transformation.

commit 408bde81637f1a46b99262150d131421c563671f
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 18:04:04 2011 +0100

    Adding yices domain class to class transformation.

commit 2dda218349ab223e50f0b73dcbdf866f4d9e6a42
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 18:01:07 2011 +0100

    Fixing for new sexpr class.

commit c37a4b8f2b836e7e9941b56819c79141db5399ab
Merge: 649bd19 acfe266
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 16:45:57 2011 +0100

    Merge branch 'master' into demonic_testing

    Conflicts:
    	Src/Eiffel/Ace/ec.ecf

commit 649bd197f2f75490067134a38358db17dfc4f139
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 16:36:38 2011 +0100

    Converting to use sexpr library.

    This change is part of the move to yices as a planning back-end.

commit ba248b948822f000cd52eb4961d041d36123ecf4
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 15:20:55 2011 +0100

    Fixing typo in sexpr_const

commit 3ceda65879948d23afbbab3337f591c431e60cdd
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 13:34:48 2011 +0100

    Removing unneeded expression types.

commit 0351ff1db4cb5b6d76eb4a736a64b0a942346289
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 13:33:49 2011 +0100

    Renaming expression classes to include sexpr.

commit d387ca45a7e6bac323a9fddcc4ca1a2abb90a37d
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Fri Feb 18 13:30:29 2011 +0100

    Moving sexprs into their own module.

commit 8448354baea08c1fe28c90c94049608f40822a21
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 17 17:16:51 2011 +0100

    Adding yices conversion class.

commit 28b44597c8c9364f3cac4f5f0f8c1bce90f16af6
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 17 17:16:23 2011 +0100

    Fixing small compile errors.

commit 25a712020d6944c06fc2f40ae03dffd7d38c2c1a
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 17 17:16:11 2011 +0100

    Fixing typo.

commit 412f1b097bda73c95867ed5ae72401ec3424d21a
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 17 16:28:29 2011 +0100

    Adding arguments to feature description.

commit 2f5d62155e627d3e07aa5f0ce20a15ffaf9cdf8a
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 17 16:27:07 2011 +0100

    Yices conversion now generates *_desc classes.

commit b89a564b2640ee6a303abc58ff3ab4c0086b727e
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 17 14:15:43 2011 +0100

    Adding classes for describing classes and features.

commit bc072f2c0e2f0555d86413c5d0652d74764e4371
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 17 13:57:14 2011 +0100

    Copy of class_to_domain for SMT encoding.

commit 6e48deecd7d38e3d1f308c49c83c7f38b57d03b8
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Thu Feb 17 13:50:20 2011 +0100

    Renaming inconsistent class/filenamed pre_to_adl.

commit bf9db246b96cd870f05fa090b9492ba17d7444a9
Merge: d7a8fe8 2f5b47d
Author: Scott West <scott.west@inf.ethz.ch>
Date:   Tue Feb 15 16:22:56 2011 +0100

    Merge branch 'master' into demonic_testing

commit d7a8fe808398a14258f4897a9841c863d8bc04e1
Author: S <saynte@gmail.com>
Date:   Mon Feb 7 00:07:37 2011 +0100

    Adding back inclusion of target.

    This broke the previous instrumentation.

commit e51212f7fb75e6028d8878451ef197be359c62de
Author: S <saynte@gmail.com>
Date:   Sun Feb 6 22:38:56 2011 +0100

    Adding gitignore.

commit 89a8ff586c00d0ce45c71fe67d58dd6ef5d46106
Author: S <saynte@gmail.com>
Date:   Sun Feb 6 22:17:41 2011 +0100

    Removing parameter serialization.

    This is now taken care of by the arguments, due to the replacement
    in the rely condition we can do this.

commit dde91511b497ba5f78307e73cbec5790dbf418b5
Author: S <saynte@gmail.com>
Date:   Sun Feb 6 22:15:48 2011 +0100

    Track assignments with a parameter as source.

    When we have an assignment from a parameter, we store it so we can
    update rely-conditions with it.

commit e37f2aa288f2b7a89c59cdff5766cd3018ce4049
Author: scott <scott@scott-desktop.(none)>
Date:   Sun Feb 6 18:21:15 2011 +0100

    Initial commit of demonic testing branch.

Revision 87305 - (view) (annotate) - [select for diffs]
Modified Fri Sep 23 08:21:01 2011 UTC (8 years ago) by jasonw
File length: 365735 byte(s)
Diff to previous 87220
<<Merged from trunk#87304.>>

Revision 87220 - (view) (annotate) - [select for diffs]
Modified Thu Sep 15 08:09:35 2011 UTC (8 years, 1 month ago) by jasonw
File length: 364621 byte(s)
Diff to previous 87104
<<Merged from trunk#87219.>>

Revision 87104 - (view) (annotate) - [select for diffs]
Modified Fri Aug 26 08:16:29 2011 UTC (8 years, 1 month ago) by jasonw
File length: 363598 byte(s)
Diff to previous 87069
<<Merged from trunk#87102.>>

Revision 87069 - (view) (annotate) - [select for diffs]
Modified Fri Aug 19 18:04:34 2011 UTC (8 years, 2 months ago) by jasonw
File length: 363529 byte(s)
Diff to previous 86946
<<Merged from trunk#87065.>>

Revision 86946 - (view) (annotate) - [select for diffs]
Modified Fri Aug 5 15:34:52 2011 UTC (8 years, 2 months ago) by jasonw
File length: 363565 byte(s)
Diff to previous 86378
<<Merged from trunk#86945.>>

Revision 86378 - (view) (annotate) - [select for diffs]
Modified Fri May 6 11:10:51 2011 UTC (8 years, 5 months ago) by jasonw
File length: 362824 byte(s)
Diff to previous 86163
<<Merged from trunk#86377.>>

Revision 86163 - (view) (annotate) - [select for diffs]
Modified Fri Apr 8 08:17:40 2011 UTC (8 years, 6 months ago) by jasonw
File length: 362661 byte(s)
Diff to previous 86000
<<Merged from trunk#86162.>>

Revision 86000 - (view) (annotate) - [select for diffs]
Modified Fri Mar 25 12:39:38 2011 UTC (8 years, 6 months ago) by jasonw
File length: 362068 byte(s)
Diff to previous 85847
<<Merged from trunk#85999.>>

Revision 85847 - (view) (annotate) - [select for diffs]
Modified Fri Mar 11 10:18:42 2011 UTC (8 years, 7 months ago) by jasonw
File length: 362101 byte(s)
Diff to previous 85792
<<Merged from trunk#85845.>>

Revision 85792 - (view) (annotate) - [select for diffs]
Modified Fri Mar 4 13:51:36 2011 UTC (8 years, 7 months ago) by jasonw
File length: 360819 byte(s)
Diff to previous 85720
<<Merged from trunk#85790.>>

Revision 85720 - (view) (annotate) - [select for diffs]
Modified Fri Feb 25 11:20:29 2011 UTC (8 years, 7 months ago) by jasonw
File length: 359829 byte(s)
Diff to previous 85496
<<Merged from trunk#85719.>>

Revision 85496 - (view) (annotate) - [select for diffs]
Modified Fri Jan 28 14:31:42 2011 UTC (8 years, 8 months ago) by jasonw
File length: 358898 byte(s)
Diff to previous 85362
<<Merged from trunk#85495.>>

Revision 85362 - (view) (annotate) - [select for diffs]
Modified Sat Jan 15 14:00:47 2011 UTC (8 years, 9 months ago) by jasonw
File length: 358862 byte(s)
Diff to previous 85248
<<Merged from trunk#85361.>>

Revision 85248 - (view) (annotate) - [select for diffs]
Modified Mon Jan 3 09:09:36 2011 UTC (8 years, 9 months ago) by jasonw
File length: 358862 byte(s)
Diff to previous 85186
<<Merged from trunk#85244.>>

Revision 85186 - (view) (annotate) - [select for diffs]
Modified Fri Dec 17 09:24:14 2010 UTC (8 years, 10 months ago) by jasonw
File length: 358414 byte(s)
Diff to previous 85117
<<Merged from trunk#85185.>>

Revision 85117 - (view) (annotate) - [select for diffs]
Modified Fri Dec 10 16:29:10 2010 UTC (8 years, 10 months ago) by jasonw
File length: 358290 byte(s)
Diff to previous 84926
<<Merged from trunk#85114.>>

Revision 84926 - (view) (annotate) - [select for diffs]
Modified Tue Nov 16 12:41:28 2010 UTC (8 years, 11 months ago) by jasonw
File length: 358068 byte(s)
Diff to previous 84557
1. Added two ast nodes, one for universal quantification and one for existential quantification.2
2. Speeded up the loading of ssql files into semantic queryables.
3. Fixed a few crashing bugs in contract inference and semantic search.

Revision 84557 - (view) (annotate) - [select for diffs]
Modified Mon Oct 11 21:01:52 2010 UTC (9 years ago) by jasonw
File length: 357858 byte(s)
Diff to previous 84470
<<Merged from trunk#84547.>>


Revision 84470 - (view) (annotate) - [select for diffs]
Modified Fri Oct 1 14:01:07 2010 UTC (9 years ago) by jasonw
File length: 357831 byte(s)
Diff to previous 84126
<<Merged from trunk#84468.>>


Revision 84126 - (view) (annotate) - [select for diffs]
Modified Fri Aug 6 10:02:37 2010 UTC (9 years, 2 months ago) by jasonw
File length: 359629 byte(s)
Diff to previous 84108
<<Merged from trunk#84124.>>

Revision 84108 - (view) (annotate) - [select for diffs]
Modified Wed Aug 4 09:40:49 2010 UTC (9 years, 2 months ago) by wests
File length: 359424 byte(s)
Diff to previous 84076
This commit merges SCOOP from the old EVE branch.

It also contains the scoopli and scoop2scoopli libraries, as well as 
scoop examples.



Revision 84076 - (view) (annotate) - [select for diffs]
Modified Fri Jul 30 14:34:23 2010 UTC (9 years, 2 months ago) by wests
File length: 354928 byte(s)
Diff to previous 83928
<<Merged from trunk#84075.>>

Revision 83928 - (view) (annotate) - [select for diffs]
Modified Fri Jul 16 15:21:01 2010 UTC (9 years, 3 months ago) by mpei
File length: 348900 byte(s)
Diff to previous 83826
<<Merged from trunk#83927>>

Revision 83826 - (view) (annotate) - [select for diffs]
Modified Wed Jul 7 11:33:55 2010 UTC (9 years, 3 months ago) by mpei
File length: 348906 byte(s)
Diff to previous 83702
<<Merged from trunk#83825>>

Revision 83702 - (view) (annotate) - [select for diffs]
Modified Fri Jun 25 13:00:44 2010 UTC (9 years, 3 months ago) by julian
File length: 348884 byte(s)
Diff to previous 83445
<<Merged from trunk#83700.>>

Revision 83445 - (view) (annotate) - [select for diffs]
Modified Sat Jun 5 15:29:40 2010 UTC (9 years, 4 months ago) by jasonw
File length: 348951 byte(s)
Diff to previous 83441
<<Merged from trunk@83442.>>

Revision 83441 - (view) (annotate) - [select for diffs]
Modified Sat Jun 5 13:52:53 2010 UTC (9 years, 4 months ago) by jasonw
File length: 349080 byte(s)
Diff to previous 83331
Renamed branch eve3 to eve. The eve branch serves as the new branch for the EVE project.

Revision 83331 - (view) (annotate) - [select for diffs]
Modified Wed May 26 18:49:35 2010 UTC (9 years, 4 months ago) by jasonw
Original Path: branches/eth/eve3/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 349080 byte(s)
Diff to previous 83237
<<Breanched from trunk@83330>> Created a branch to upgrade Eiffel Transform library to trunk.

Revision 83237 - (view) (annotate) - [select for diffs]
Modified Thu May 20 03:11:00 2010 UTC (9 years, 5 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 349080 byte(s)
Diff to previous 83162
Fixed bug#16768 by changing the evaluation of the cursor type that should be performed relative to the type of iterable container (see test#iteration002).

Revision 83162 - (view) (annotate) - [select for diffs]
Modified Thu May 13 18:29:46 2010 UTC (9 years, 5 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 349093 byte(s)
Diff to previous 83033
Fixed bug#16725 by providing a more meaningful error output.


Revision 83033 - (view) (annotate) - [select for diffs]
Modified Sun May 2 05:17:57 2010 UTC (9 years, 5 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 348995 byte(s)
Diff to previous 82735
Replaced `system.instantiator' with `instantiator' for consistency.

Revision 82735 - (view) (annotate) - [select for diffs]
Modified Thu Apr 1 05:13:43 2010 UTC (9 years, 6 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 349016 byte(s)
Diff to previous 82731
Merged REAL_32_A and REAL_64_A into REAL_A for simplicity and letting us add a new descendant MANIFEST_REAL_A to represent the type of manifest real type. That way we can assign a manifest real to either a REAL_32 or a REAL_64 (this is done the same way as we do for manifest integer/naturals).
The next thing to do is to validate the value to ensure that it fits on either a REAL_32 or REAL_64 but this won't be done now.


Revision 82731 - (view) (annotate) - [select for diffs]
Modified Wed Mar 31 20:43:06 2010 UTC (9 years, 6 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 349010 byte(s)
Diff to previous 82725
Changed the understanding of `sk_type' in the compiler to be a NATURAL_32 as it is in the runtime. Only a few cases of a conversion from integer to natural or from natural to integer have been added with comments stating that they are safe.


Revision 82725 - (view) (annotate) - [select for diffs]
Modified Wed Mar 31 18:27:33 2010 UTC (9 years, 6 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 349022 byte(s)
Diff to previous 82602
Added a flag that indicates whether AST is modified as a part of code check.

Revision 82602 - (view) (annotate) - [select for diffs]
Modified Thu Mar 18 14:15:31 2010 UTC (9 years, 7 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 348659 byte(s)
Diff to previous 82578
Fixed bug#14525 and bug#16052 by ensuring class AST is saved back when the associated routine ID information is modified (see test#incr293, test#incr338).

Revision 82578 - (view) (annotate) - [select for diffs]
Modified Mon Mar 15 20:19:03 2010 UTC (9 years, 7 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 347392 byte(s)
Diff to previous 82540
Added notion of ephemeral class in the type system. However this is not yet enabled as we haven't decided how to make a class ephemeral (keyword or certain properties of a class).


Revision 82540 - (view) (annotate) - [select for diffs]
Modified Wed Mar 10 14:08:04 2010 UTC (9 years, 7 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 347361 byte(s)
Diff to previous 82321
Changed export status of features that are not subject to public use (in
particular in visitor classes that have too many of them). This also
improves readability when browsing the features in various tools and
documents which of them are really used by the clients.
Moved `feature_table' from AST_CONTEXT to AST_FEATURE_CHECKER_GENERATOR
since it is not used outside it and therefore requires unnecessary
initialization at the degrees, not related to
AST_FEATURE_CHECKER_GENERATOR.
Removed feature {TYPE_A}.is_solved as it always returns the same value
regardless of the associated type object.
Added feature {TYPE_A}.is_computable_using_ancestors as a short track to
see if a particular type may need type information other than from the
current class and ancestors. Pobably it will not be used or will be
replaced with the more precise computation. At the moment it is supposed to
be used together with {FEATURE_I}.is_type_evaluation_delayed.
Added feature {FEATURE_I}.is_type_evaluation_delayed that tells if type
checking for the feature cannot be done before building feature tables for
all the classes in the system.
Replaced direct access to {INHERIT_INFO}.a_feature with a conditional one,
including delayed feature instantiation if the types of the feature
signature are not yet computed.
Introduced and used "delayed" versions of the following features for cases
when type information associated with a feature is not computed yet:
 - {CONVERTIBILITY_CHECKER}.check_conversion_type
 - {INHERIT_INFO}.instantiate_a_feature
 - {FEATURE_I}.check_assigner
 - {FEATURE_I}.check_same_signature
 - {FEATURE_I}.check_signature
 - {FEATURE_I}.check_types
 - {FEATURE_I}.process_pattern
 - {FEATURE_I}.update_instantiator2
Delayed computation of a class skeleton because it may depend on features
for which type information is not available yet. This is a subject for
future optimization.
Added some assertions to ensure everything is properly set before
processing.
Added actions to update type information associated with a feature in cases
it is cloned in a descendant while the type information of the original
feature is not computed yet.
Introduced new mechanism in DEGREE_4 to record actions to be taken after
the "normal" processing when some type checks are delayed. This is required
to compute qualified anchored types that may depend on descendants or other
classes that are not processed before the given one, but are still required
to get the correct type information.
Introduced new mechanism to TMP_FEATURE_SERVER to store features for which
type information is not yet computed. These features are kept in memory
instead flushing to the disk that is performed after computing type
information for them.
Made some minor optimizaions.


Revision 82321 - (view) (annotate) - [select for diffs]
Modified Fri Feb 12 17:27:16 2010 UTC (9 years, 8 months ago) by jfiat
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 347213 byte(s)
Diff to previous 82253
Support new once syntax using key
- for now, reject 'OBJECT' since it is not yet implemented
- report obsolete message for once_status indexing

Revision 82253 - (view) (annotate) - [select for diffs]
Modified Thu Feb 4 08:42:43 2010 UTC (9 years, 8 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 347039 byte(s)
Diff to previous 82224
Renamed DEBUG_KEY_LIST_AS into KEY_LIST_AS to use the same AST nodes for both debug and once keys.

Revision 82224 - (view) (annotate) - [select for diffs]
Modified Mon Feb 1 15:11:32 2010 UTC (9 years, 8 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 347051 byte(s)
Diff to previous 82113
Accepted qualified anchored types (type checking and code generation are not completed yet).

Revision 82113 - (view) (annotate) - [select for diffs]
Modified Tue Jan 19 19:41:39 2010 UTC (9 years, 8 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 346947 byte(s)
Diff to previous 82055
Modified processing of routine body to preserve scopes started in a precondition, but remove those started in the body or postcondition in presence of a rescue clause (see test#attach070).

Revision 82055 - (view) (annotate) - [select for diffs]
Modified Tue Jan 12 12:27:19 2010 UTC (9 years, 9 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 346361 byte(s)
Diff to previous 81963
Fixed test#attach070 by initializing attribute scope records before processing rescue clause so that attributes initialized in routine body are not considered initialized in the rescue clause.

Revision 81963 - (view) (annotate) - [select for diffs]
Modified Tue Dec 29 16:52:10 2009 UTC (9 years, 9 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 346270 byte(s)
Diff to previous 81835
Fixed eweasel test#incr339 in AST_FEATURE_CHECKER_GENERATOR where if in `process_bracket_as' we found an error in `process_call' we would not restore the attribute `is_qualified_call' to its previous value and then it would mess up the C code generation for attribute assignments.
Added creation procedure for FEATURE_B, FEATURE_BW, FEATURE_BL, ATTRIBUTE_B, ATTRIBUTE_BL and ATTRIBUTE_BW and updated callers.
Made sure that the value of `is_attachment' is copied in `fill_from' from ATTRIBUTE_BW and ATTRIBUTE_BL for consistency.


Revision 81835 - (view) (annotate) - [select for diffs]
Modified Tue Dec 15 19:35:09 2009 UTC (9 years, 10 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 346271 byte(s)
Diff to previous 81516
Supported new variant of a check instruction with a compound (see test#exec321).

Revision 81516 - (view) (annotate) - [select for diffs]
Modified Fri Nov 13 13:03:36 2009 UTC (9 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 345256 byte(s)
Diff to previous 81512
Used new validity rule codes to report errors for the new loop construct.

Revision 81512 - (view) (annotate) - [select for diffs]
Modified Thu Nov 12 17:23:33 2009 UTC (9 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 345327 byte(s)
Diff to previous 81476
Added more specific errors for the new loop construct.

Revision 81476 - (view) (annotate) - [select for diffs]
Modified Tue Nov 10 18:42:58 2009 UTC (9 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 345052 byte(s)
Diff to previous 81451
Allowed type checking of both sides of assinment even if one of them fails.
Changed semantics of the new loop iteration mechanism so that the cursor
type is that of "new_cursor" from the user's point of view, but the
built-in mechanism to advance the loop uses ITERATION_CURSOR to avoid
surprises.


Revision 81451 - (view) (annotate) - [select for diffs]
Modified Fri Nov 6 11:32:53 2009 UTC (9 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 341926 byte(s)
Diff to previous 81444
Removed unused local.

Revision 81444 - (view) (annotate) - [select for diffs]
Modified Fri Nov 6 09:41:00 2009 UTC (9 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 341960 byte(s)
Diff to previous 81426
Moved creation of AST nodes from code generation to parse time as some
information is recorded during code generation to AST nodes to support type
checking of inherited code (this fixes issues with using new loop
constructs in inherited assertions as well as in full class checking of
inherited code - see test#exec319 and test#syntax059).
Factored out automatic code generated for new loop constructs into separate
code nodes to simplify generation of breakpoint slot information for
debugging.


Revision 81426 - (view) (annotate) - [select for diffs]
Modified Thu Nov 5 18:05:31 2009 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 343993 byte(s)
Diff to previous 81361
Redone the code generation of manifest array so that it doesn't yield an assertion failure in void-safe mode when creating an array with an attached actual argument type. So instead of calling `make' from ARRAY and then filling it, we create a SPECIAL instance, fill it, and then use the new `to_array' feature from SPECIAL to create the ARRAY. The changes required updating the code generation for melted code, C code and .NET code.
Fixed a bug in the creation of a SPECIAL of BIT types in melted mode as we miss reading the BIT size.
Added requirement for `to_array' to be present in SPECIAL.
Removed code generation of precondition checking for SPECIAL creation in the case of manifest arrays as the compiler knows we are fullfilling the precondition.
Modified `updated_info' from CREATE_TYPE to always return a CREATE_TYPE instance as this is what is happening in practice.

While testing the .NET code generation above, we found that `generating_type' was not working properly so we fixed it but it will not work when applied to a non-Eiffel class (we raise an exception while waiting the fix).
Fixed code generation of `default' from TYPE the same way it was done in classic to avoid a check violation when it is called. 


Revision 81361 - (view) (annotate) - [select for diffs]
Modified Sun Nov 1 19:27:09 2009 UTC (9 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 344128 byte(s)
Diff to previous 81360
Added type checking for loop expression.

Revision 81360 - (view) (annotate) - [select for diffs]
Modified Sun Nov 1 16:30:02 2009 UTC (9 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 338232 byte(s)
Diff to previous 81308
Limited scope of a loop iteration variable so that it can be subsequently
reused (see test#syntax059).
Changed the order if execution to follow the one specified in the proposal
(Iteration before Initialization).
Corrected type evaluation to yield the expected cursor type (see
test#syntax059).
Added generation of a call to {ITERATION_CURSOR}.start to follow the
proposal.


Revision 81308 - (view) (annotate) - [select for diffs]
Modified Thu Oct 29 07:46:12 2009 UTC (9 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 337303 byte(s)
Diff to previous 81303
Fixed bug#16383 by using a combined exit condition to avoid feature call on
void target if explicit exit condition is not specified in a loop.
Removed unused locals.


Revision 81303 - (view) (annotate) - [select for diffs]
Modified Wed Oct 28 09:39:57 2009 UTC (9 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 337309 byte(s)
Diff to previous 81223
Provided validity rules checks for the new loop iteration construct.
Added checks for presence of expected ITERABLE and ITERATION_CURSOR
classes.
Supported code generation for loop instructions that include Iteration
part.


Revision 81223 - (view) (annotate) - [select for diffs]
Modified Thu Oct 22 15:36:47 2009 UTC (9 years, 11 months ago) by jfiat
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 330348 byte(s)
Diff to previous 81214
Fixed potential call on Void target.

Revision 81214 - (view) (annotate) - [select for diffs]
Modified Thu Oct 22 00:05:06 2009 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 330306 byte(s)
Diff to previous 81206
While extending eweasel test#svalid025, I found it still crashed. The issue had to do with the type of an object test local from the generic parent class, let's say the type is A [G], but the descendant class has no generic. We still kept A [G] as the type of the local and because descendant class is not generic, it would simply crash. The solution was to store the type as it appears in the ancestor in the OBJECT_TEST_LOCAL_B node, and resolved the type of those locals accordingly using the `BYTE_CONTEXT.real_type' feature.
The other thing that had to change is the building of the local list for the redefined routines when merging the assertions. We have slightly modified BYTE_CONTEXT.add_object_test_locals to call `descendant_type' and its caller INHERITED_ASSERTION.add_object_test_locals to properly initialized the context.


Revision 81206 - (view) (annotate) - [select for diffs]
Modified Wed Oct 21 12:06:43 2009 UTC (9 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 330262 byte(s)
Diff to previous 81013
Supported new keywords "across" and "some".
Extended syntax options to include "provisional" variant that stands for
the syntax that might be included in the forthcoming releases of the
standard.
Accepted new loop construct at parse time in provisional mode.


Revision 81013 - (view) (annotate) - [select for diffs]
Modified Mon Oct 5 18:47:59 2009 UTC (10 years ago) by king
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 330152 byte(s)
Diff to previous 80990
Fixed error location for VWOE1 errors where the location is now set to the offending argument instead of the infix operator, this fixes bug#12859.

Revision 80990 - (view) (annotate) - [select for diffs]
Modified Thu Oct 1 22:05:34 2009 UTC (10 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 330031 byte(s)
Diff to previous 80697
Fixed eweasel test#final085 due to the missing recording of the DEPEND_UNIT when some of the elements
  of a manifest array requires a conversion routine. Because of that dead code removal was marking the
  routine dead, but code generation still tried to access it and caused a bug in ROUT_TABLE.min_used. 
  This fixes bug#16319 and possibly others related to the same callstack trace.
Revisited recording of DEPEND_UNIT to ensure it was always done for non-inherited code.


Revision 80697 - (view) (annotate) - [select for diffs]
Modified Sat Sep 12 05:46:49 2009 UTC (10 years, 1 month ago) by king
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 328999 byte(s)
Diff to previous 80696
Made sure has_replicated_ast was set for inline agent feature.

Revision 80696 - (view) (annotate) - [select for diffs]
Modified Sat Sep 12 05:22:29 2009 UTC (10 years, 1 month ago) by king
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 328898 byte(s)
Diff to previous 80510
Fixed replication handling with inline agents

Revision 80510 - (view) (annotate) - [select for diffs]
Modified Sat Aug 29 06:04:28 2009 UTC (10 years, 1 month ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 328003 byte(s)
Diff to previous 80205
Fixed an issue with using `format_at_position (i) in descendant_class' because this query
  return only the first one, not the complete sets (when it merges two generic classes with
  no common ancestor). Instead we use the recently added routine `formal_rout_id_set_at_position'.


Revision 80205 - (view) (annotate) - [select for diffs]
Modified Wed Aug 12 06:13:40 2009 UTC (10 years, 2 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 327969 byte(s)
Diff to previous 79315
Fixed test#valid257 by marking the type of elements as attached if all the elements of the manifest array are indeed attached.

Revision 79315 - (view) (annotate) - [select for diffs]
Modified Tue Jun 16 18:31:47 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 328107 byte(s)
Diff to previous 79139
Fixed an incrementality bug when compiling first the void-safe version of EiffelBase, and then switching
  to incrementally recompile the non-void safe version (this is when both ECFs share the same UUID). It
  was crashing at degree 3 on on COMPACT_CURSOR_TREE.
This fixes bug#15934.


Revision 79139 - (view) (annotate) - [select for diffs]
Modified Mon Jun 8 21:56:42 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 327922 byte(s)
Diff to previous 79128
Made code of the batch compiler compile with both the old and new version of EiffelBase.


Revision 79128 - (view) (annotate) - [select for diffs]
Modified Mon Jun 8 03:30:14 2009 UTC (10 years, 4 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 328032 byte(s)
Diff to previous 78822
Fixed test#valid253 by checking conformance for attached variants of the types involved in equality tests, so that VWEQ is not reported in the cases when the reason that they do not conform is their attachment status.

Revision 78822 - (view) (annotate) - [select for diffs]
Modified Thu May 21 15:17:48 2009 UTC (10 years, 4 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 327640 byte(s)
Diff to previous 78533
Fixed bug#15850 by ensuring that structures to track result scope are initialized before checking inherited postcondition if it was not done yet.

Revision 78533 - (view) (annotate) - [select for diffs]
Modified Thu May 7 05:46:31 2009 UTC (10 years, 5 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 327445 byte(s)
Diff to previous 78529
Fixed eweasel test#term177 where we should call `formal_instantiation_in' before checking 
  `actual_argument_type' because the former will leave `like arguments' as they are, thus the type
  will be evaluated in the right context, then the processing of `like arguments' will simply perform
  a substitution and not context is necessary.


Revision 78529 - (view) (annotate) - [select for diffs]
Modified Wed May 6 17:26:30 2009 UTC (10 years, 5 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 327403 byte(s)
Diff to previous 78511
Fixed eweasel test#valid250 because we did not reset `last_assigner_command' so if you had an
  assigner call for a labeled tuple after a normal assigner call, the compiler would take the
  wrong `target_type'.


Revision 78511 - (view) (annotate) - [select for diffs]
Modified Tue May 5 21:27:26 2009 UTC (10 years, 5 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 327369 byte(s)
Diff to previous 78387
Slightly changed the validity rules for assigners. The first change is that now
  the first argument of the assigner only needs to conform to the result type of
  the getter (before it was exact type). The second change is that the validation
  of `a.b := c' will verify that `c' conforms to the type of the first argument
  of the assigner (before it only checked that it conformed to the type of `b'.
Note: for the time being the other arguments of the assigner should be identical in type
  to the arguments of the getter, we leave this unchanged from the 2nd ECMA edition.


Revision 78387 - (view) (annotate) - [select for diffs]
Modified Mon Apr 27 14:15:45 2009 UTC (10 years, 5 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 326251 byte(s)
Diff to previous 78338
Fixed bug#15689 by setting the status of a type of a stable attribute when used as a target of an assignment to attached (see test#attach063).

Revision 78338 - (view) (annotate) - [select for diffs]
Modified Thu Apr 23 12:21:16 2009 UTC (10 years, 5 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 326134 byte(s)
Diff to previous 78267
Fixed bug#15598 by iterating over a loop and ensuring that the set of attached variables on entering the loop body is dominated by the set of attached variables on exiting the loop body to make sure any errors related to non-attached variables inside the loop body are correctly detected (see test#attach062).

Revision 78267 - (view) (annotate) - [select for diffs]
Modified Thu Apr 16 07:47:49 2009 UTC (10 years, 6 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 325292 byte(s)
Diff to previous 78199
Unified setting of attached status for types that are known to be attached.
Supported intermediate levels of void-safety.


Revision 78199 - (view) (annotate) - [select for diffs]
Modified Fri Apr 10 23:06:09 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 328835 byte(s)
Diff to previous 77941
Fixed eweasel test#melt085 and test#melt086 by properly evaluating the type of the `Precursor' expression
  in the descendant class. Not doing so, you would end up with LIKE_FEATURE object made for the parent
  class not the descendant class and this would crash at runtime when trying to resolve its type.
Removed commented code.


Revision 77941 - (view) (annotate) - [select for diffs]
Modified Fri Mar 27 15:38:55 2009 UTC (10 years, 6 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 328878 byte(s)
Diff to previous 77893
Avoided reporting unused locals for inherited code.

Revision 77893 - (view) (annotate) - [select for diffs]
Modified Wed Mar 25 20:16:29 2009 UTC (10 years, 6 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 328848 byte(s)
Diff to previous 77871
Fixed a crash caused by tracking scopes in class invariants that have no locals, but the instruction scope mechanism is common for both attributes and locals, so that structures for the latter have to be initialized as well (this fixes test#fixed120, test#incr082, test#incr278).

Revision 77871 - (view) (annotate) - [select for diffs]
Modified Tue Mar 24 18:04:38 2009 UTC (10 years, 6 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 328719 byte(s)
Diff to previous 77826
Supported scopes for object test locals and similar entities (read-only
variables, stable attributes, locals) in postconditions, class invariants,
loop invariants and preconditions in "require else" form (see
test#attach059).
Registered attachment status of an entity used as an expression of an
object test regardless of whether the object test local is specified or
not.


Revision 77826 - (view) (annotate) - [select for diffs]
Modified Fri Mar 20 12:57:49 2009 UTC (10 years, 7 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 327872 byte(s)
Diff to previous 77738
Splitted initialization of structures to track attribute and local scopes, as attributes may be recorded when locals are not present (in inherited assertions and class invariant).

Revision 77738 - (view) (annotate) - [select for diffs]
Modified Mon Mar 16 14:52:31 2009 UTC (10 years, 7 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 327560 byte(s)
Diff to previous 77697
Removed unused feature.

Revision 77697 - (view) (annotate) - [select for diffs]
Modified Wed Mar 11 18:41:44 2009 UTC (10 years, 7 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 328051 byte(s)
Diff to previous 77693
Fixed an issue with processing stable attributes when used as arguments in qualified calls (see test#attach057).

Revision 77693 - (view) (annotate) - [select for diffs]
Modified Wed Mar 11 15:25:20 2009 UTC (10 years, 7 months ago) by jfiat
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 328056 byte(s)
Diff to previous 77666
Fixed bug#15494: Cannot eval detached expression


Revision 77666 - (view) (annotate) - [select for diffs]
Modified Mon Mar 9 21:40:42 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 328070 byte(s)
Diff to previous 77605
Fixed eweasel test#agent004 and test#agent010 by ensuring the result type of the agent
  is properly instantiated in the agent target type context.


Revision 77605 - (view) (annotate) - [select for diffs]
Modified Fri Mar 6 11:17:14 2009 UTC (10 years, 7 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 327640 byte(s)
Diff to previous 77553
Fixed an issue that prevented from detecting the cases when stable attributes are initialized by assignment or creation instruction.

Revision 77553 - (view) (annotate) - [select for diffs]
Modified Thu Mar 5 13:59:13 2009 UTC (10 years, 7 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 327513 byte(s)
Diff to previous 77547
Corrected argument passed to the routine that checks that an attribute is attached by passing its name rather than a feature ID.

Revision 77547 - (view) (annotate) - [select for diffs]
Modified Thu Mar 5 12:41:15 2009 UTC (10 years, 7 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 327508 byte(s)
Diff to previous 77520
Supported the notion of stable attributes and tracking for their initialization.

Revision 77520 - (view) (annotate) - [select for diffs]
Modified Wed Mar 4 01:50:25 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 326731 byte(s)
Diff to previous 77416
Updated to new syntax of object test and attached/detachable types using the `syntax_updater' tool.


Revision 77416 - (view) (annotate) - [select for diffs]
Modified Fri Feb 27 19:13:25 2009 UTC (10 years, 7 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 326666 byte(s)
Diff to previous 77402
Fixed bug#15432 by checking if VKCN(3) is reported before raising VUTA(2) (see test#valid244).

Revision 77402 - (view) (annotate) - [select for diffs]
Modified Fri Feb 27 12:13:49 2009 UTC (10 years, 7 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 326642 byte(s)
Diff to previous 77393
Added a new feature {TYPE_A}.formal_instantiation_in that takes care of
both formal generic and "like Current" resolution, as they should be
evaluated taking into account slightly different context (current
constraint for the formal generics and current type for "like Current", as
the latter may be resolved to a formal generic and should not be resolved
to a signle constraint in a multi-constraint case).
Promoted attachment setting of a formal generic when it is evaluated in a
descendant.
Used "detachable ANY" as a default constraint for a formal generic.
Added a query {TYPE_SET_A}.is_attached that might be used to see if a given
multi-constraint formal is attached.
Changed calculation of a type in the given context when type-checking code
to use the new function.
Implemented detection of VUTA(2) errors for unary and binary operators.
Avoided compiler crash when reporting VWOE error for unary operator in
multi-constraint case.


Revision 77393 - (view) (annotate) - [select for diffs]
Modified Fri Feb 27 08:24:12 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 326767 byte(s)
Diff to previous 77240
Fixed completely incorrect checking of inherited binary and unary operations. This fixes eweasel
  test#valid243, test#svalid019, test#svalid020 and test#multicon051. As a consequence we do
  not need the hack of having `is_left_type_converted' in BINARY_AS since the left or right part
  of the binary node will be a CONVERTED_EXPR_AS.
Made sure we report VTCM(2) errors for binary operators, instead of VTMC(1) and a VWOE at the same time
  which was wrong.
However, the handling of multiple constraints is not done properly for inherited code, there is
  a FIXME in `process_binary_as' so that we know it needs to be fixed. For the time being, we pick
  the feature found when checking the routine where it appeared.


Revision 77240 - (view) (annotate) - [select for diffs]
Modified Sat Feb 21 01:40:41 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 324685 byte(s)
Diff to previous 77174
Added `is_void_check' to OBJECT_TEST_B to facilitate the code generation by simply generating
  a void check rather than a type check when the code using the `attached exp' or `attached exp as y' form.


Revision 77174 - (view) (annotate) - [select for diffs]
Modified Mon Feb 16 19:37:37 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 324646 byte(s)
Diff to previous 77128
Added support for new object test syntax `attached {T} exp as x' instead of `{x: T} exp',
  but also for the other variants `attached {T} exp', `attached exp as x' and `attached exp'.
  Currently `exp' can be any kind of expression but we need to restrict it to match the ECMA
  specification.
Added support for new attached/detachable type syntax which replaces ! and ?.


Revision 77128 - (view) (annotate) - [select for diffs]
Modified Wed Feb 11 23:33:41 2009 UTC (10 years, 8 months ago) by king
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 323404 byte(s)
Diff to previous 77127
Fixed previous commit

Revision 77127 - (view) (annotate) - [select for diffs]
Modified Wed Feb 11 23:23:44 2009 UTC (10 years, 8 months ago) by king
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 323426 byte(s)
Diff to previous 77116
Now vrle error checking is ignored for conceptually replicated features as it is already performed in its enclosing class

Revision 77116 - (view) (annotate) - [select for diffs]
Modified Wed Feb 11 15:45:56 2009 UTC (10 years, 8 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 323377 byte(s)
Diff to previous 76954
Removed restiction that the same name cannot be reused in different object
tests of the same feature if the their scopes do not conflict.
Ensured the object test local cannot be used in an old expression if it is
declared outside it.


Revision 76954 - (view) (annotate) - [select for diffs]
Modified Tue Feb 3 22:23:30 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 322662 byte(s)
Diff to previous 76939
Fixed eweasel test#svalid018 where a crash occurred in `process_converted_expr_as' because we failed
  to verify that the expression still compiles fine even if inherited, because although it might compile
  fine in the ancestor, in the descendant it might not if they use a different set of options (e.g.
  non-void-safe in parent and void-safe in descendant).


Revision 76939 - (view) (annotate) - [select for diffs]
Modified Mon Feb 2 19:20:24 2009 UTC (10 years, 8 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 322558 byte(s)
Diff to previous 76898
Implemented tracking for initialization of attached attributes in creation procedures to take into account complex instructions with several execution paths (this fixes bug#15142, test#attach037).

Revision 76898 - (view) (annotate) - [select for diffs]
Modified Fri Jan 30 00:46:39 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 324192 byte(s)
Diff to previous 76894
Fixed eweasel test#incr139 which previously passed until a recent change in the way renamings
  are processed and which revealed that we were not detecting VDPR(3) errors because we were
  not processing all the possible features of a routine ID set (only the first one).
Improved VDPR(3) errors by listing all the parent features for which there is a conflict.


Revision 76894 - (view) (annotate) - [select for diffs]
Modified Thu Jan 29 23:03:50 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 324825 byte(s)
Diff to previous 76868
Renamed VUPR into VDPR to match the ECMA specification.


Revision 76868 - (view) (annotate) - [select for diffs]
Modified Wed Jan 28 20:03:28 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 324846 byte(s)
Diff to previous 76860
Fixed eweasel test#attach042 which failed because when generating the runtime information for `like Current'
  we did not add any attachment marks. And thus `?like Current' or `like Current' where equivalent instead
  of being as `?like Current' and `!like Current' at runtime. Also forced the type of the routine object
  to be always attached so that the type at runtime of the routine object is ROUTINE [! XXX, ...].


Revision 76860 - (view) (annotate) - [select for diffs]
Modified Wed Jan 28 05:51:08 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 324372 byte(s)
Diff to previous 76852
Made the TUPLE second formal generic parameter of a ROUTINE object always attached
  regardless of the number of arguments as otherwise eweasel test#attach043 cannot pass.
  Initially it was made detachable so that one can do `action.call (Void)' but now
  the argument of `call' is detachable and thus allow this.


Revision 76852 - (view) (annotate) - [select for diffs]
Modified Wed Jan 28 00:01:19 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 324403 byte(s)
Diff to previous 76843
Fixed eweasel test#svalid016 where conversion should not be applied when rechecking inherited
  code.


Revision 76843 - (view) (annotate) - [select for diffs]
Modified Tue Jan 27 15:43:19 2009 UTC (10 years, 8 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 324237 byte(s)
Diff to previous 76771
Generalized tracking for initialized and attached locals to include
arguments and attributes.
Taken inherited preconditions into account when evaluating attachment
status of arguments.


Revision 76771 - (view) (annotate) - [select for diffs]
Modified Tue Jan 20 05:05:28 2009 UTC (10 years, 8 months ago) by king
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 324764 byte(s)
Diff to previous 76639
Improved degree 4 implementation to alias feature i objects should no change be required, most reusable objects are now cached for each class pass resulting in far less memory, gc and disk space being used, aliasing can be further improved by not storing export information in the feature i objects themselves as well as redoing the somewhat broken is_origin implementation

Revision 76639 - (view) (annotate) - [select for diffs]
Modified Sat Jan 10 16:07:45 2009 UTC (10 years, 9 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 324114 byte(s)
Diff to previous 76562
Fixed bug#15139 by checking when parts of a multi-branch conditional instruction even when the inspect expression does not type check (see test#valid228).

Revision 76562 - (view) (annotate) - [select for diffs]
Modified Sat Jan 3 01:04:08 2009 UTC (10 years, 9 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 323920 byte(s)
Diff to previous 76561
Fixed eweasel test#svalid014 where we forgot to initialize the `inherited_type_a_checker' in `check_body'
  which caused a failure when checking anchors of an inherited inline agents (but also for a builtin
  routines with Eiffel code in it (unfortunately hard to provide a test for it since the set of builtins
  is restricted)).


Revision 76561 - (view) (annotate) - [select for diffs]
Modified Sat Jan 3 00:47:20 2009 UTC (10 years, 9 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 323838 byte(s)
Diff to previous 76432
Fixed eweasel test#svalid015 where compiler was getting into an infinite loop while checking inherited
  creations whose target was a formal with multiple constraint, or reporting spurious VTMC(4) errors when
  none should have been reported.


Revision 76432 - (view) (annotate) - [select for diffs]
Modified Mon Dec 29 23:41:59 2008 UTC (10 years, 9 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 323505 byte(s)
Diff to previous 76412
Removal of `is' keyword.
Replacement of `is' by `=' for constant definitions.
Replaced `indexing' by `note'.


Revision 76412 - (view) (annotate) - [select for diffs]
Modified Mon Dec 29 16:54:12 2008 UTC (10 years, 9 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 324165 byte(s)
Diff to previous 76408
Removed usage of TILDA_ROUTINE_CREATION_AS since it was not used anymore now that ~ cannot represent an agent.

Revision 76408 - (view) (annotate) - [select for diffs]
Modified Mon Dec 29 12:49:54 2008 UTC (10 years, 9 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 324309 byte(s)
Diff to previous 76370
Fixed bug#15140 by avoiding updating scope information for the When_part
that is never executed (see test#valid229).
Ensured the validity checks are performed even when When_part is never
executed (this fixes test#valid231).


Revision 76370 - (view) (annotate) - [select for diffs]
Modified Wed Dec 24 01:39:45 2008 UTC (10 years, 9 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 323737 byte(s)
Diff to previous 76195
Merged back the fixed catcall checker that I was keeping on hold. This fixes eweasel test#term166 (crash)
  and test#catcall001 and test#catcall005 (matching output). This catcall checker assumes there are no
  frozen entities and that all actual formal generics are variant. Once we have syntax support for those
  keywords in type, we will be able to actually fix those catcall warnings in the code.


Revision 76195 - (view) (annotate) - [select for diffs]
Modified Wed Dec 17 02:18:45 2008 UTC (10 years, 10 months ago) by king
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 311729 byte(s)
Diff to previous 76125
Altered instantiation routines to now return the feature_i object, this way we can return the same object if instantation has no effect, for now we always duplicate but this will change when proper aliasing gets implemented

Revision 76125 - (view) (annotate) - [select for diffs]
Modified Tue Dec 9 20:24:44 2008 UTC (10 years, 10 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 311694 byte(s)
Diff to previous 76123
Added a context class to `conform_to'. This prevents having to use `System.current_class' in the case
  of formals and thus making the code more robust.


Revision 76123 - (view) (annotate) - [select for diffs]
Modified Tue Dec 9 19:51:12 2008 UTC (10 years, 10 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 311121 byte(s)
Diff to previous 76121
Fixed typo in code committed in previous revision.


Revision 76121 - (view) (annotate) - [select for diffs]
Modified Tue Dec 9 19:48:39 2008 UTC (10 years, 10 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 311117 byte(s)
Diff to previous 76120
Fixed an incorrect reporting of VKCN error for inherited code because we used `current_class' rather
  than `written_class' to show the location of the error. This implied setting `written_class' while
  checking the invariant (which was not done before) which also caused the code for inline agents to
  fail because it assumed that `context.current_feature' would be void for an invariant. Now we use
  the query `is_invariant'.
Fixed a bug in the parser framework because `{AST_EIFFEL}.is_text_available' would crash because we
  would violate the assertions of `token_region'. This crash was visible with the previous incorrect
  implementation of the VKCN error now fixed above when the current class was smaller than the written
  class.


Revision 76120 - (view) (annotate) - [select for diffs]
Modified Tue Dec 9 19:39:13 2008 UTC (10 years, 10 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 311153 byte(s)
Diff to previous 75940
Fixed an incorrect VUTA(2) error being reported when compiling a static access call in void-safe mode.
  This fixes eweasel test#valid223.


Revision 75940 - (view) (annotate) - [select for diffs]
Modified Fri Nov 28 12:53:28 2008 UTC (10 years, 10 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 311130 byte(s)
Diff to previous 75762
Avoided reporting VWEQ warnings for voidness tests except for the case when one of the expressions is known to be of an expanded type.

Revision 75762 - (view) (annotate) - [select for diffs]
Modified Wed Nov 19 17:09:37 2008 UTC (10 years, 10 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 310971 byte(s)
Diff to previous 75759
Removed ONCE_IN_GENERIC warning as the change it was trying to highlight does not make sense since now people have updated their code by now.

Revision 75759 - (view) (annotate) - [select for diffs]
Modified Wed Nov 19 16:50:02 2008 UTC (10 years, 10 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 311371 byte(s)
Diff to previous 75723
Fixed a bug in manifest tuple creation because the created type was always !TUPLE which is incorrect
  as it should just be TUPLE. This was because we did not use a CREATE_INFO object to perform the creation.
  Now we do like ARRAY_CONST_B/ARRAY_CONST_BL.


Revision 75723 - (view) (annotate) - [select for diffs]
Modified Tue Nov 18 20:48:32 2008 UTC (10 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 311240 byte(s)
Diff to previous 75652
Called wrappers for attributes that can be redeclared to self-initializing ones.

Revision 75652 - (view) (annotate) - [select for diffs]
Modified Sun Nov 16 05:05:37 2008 UTC (10 years, 11 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 312070 byte(s)
Diff to previous 75612
Fixed processing of TYPE_EXPR_AS to use {TYPE_A}.create_info rather than creating a CREATE_TYPE because the later
  would not remove the possible attachment mark that could appear when code is compiled in void-safe mode.
Fixed bug test#conform005 where assignment attempt or object test would not possible attachment mark that may appear
  via redefinition or via actual generic parameter.
Forbid the assignment attempts when target is attached by introducing a new validity rule vjrv3.
Fixed eweasel test#freez029 when using an object test local which is a formal type. A side effect of this fix which
  was to keep the original type of a local in BYTE_CONTEXT.local_list instead of the `real_type' version was
  to also fix eweasel test#exec284.

Revision 75612 - (view) (annotate) - [select for diffs]
Modified Fri Nov 14 19:52:36 2008 UTC (10 years, 11 months ago) by king
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 311598 byte(s)
Diff to previous 75455
Refactored precursor generation so that unselected routines can be easily processed when we have a way of find the routine id in the parent, this also fixes precursor generation for directly replicated features that are selected

Revision 75455 - (view) (annotate) - [select for diffs]
Modified Thu Nov 6 16:10:29 2008 UTC (10 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 310742 byte(s)
Diff to previous 75371
Supported object tests in preconditions and check instructions so that the object test local is available only within the corresponding assertion.

Revision 75371 - (view) (annotate) - [select for diffs]
Modified Thu Oct 30 20:07:23 2008 UTC (10 years, 11 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 311504 byte(s)
Diff to previous 75313
Fixed a missing update to the new creation procedure of OBS_CLASS_WARN.


Revision 75313 - (view) (annotate) - [select for diffs]
Modified Tue Oct 28 03:13:16 2008 UTC (10 years, 11 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 311517 byte(s)
Diff to previous 75308
Fixed eweasel test#agent008 because when processing an agent on a label of a TUPLE, we do
  not have an associated FEATURE_I instance to get the return type, instead we have to use
  the latest computed type.


Revision 75308 - (view) (annotate) - [select for diffs]
Modified Mon Oct 27 23:38:16 2008 UTC (10 years, 11 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 311143 byte(s)
Diff to previous 75307
Fixed eweasel test#syntax050 because we forgot to do like a NESTED_AS for a NESTED_EXPR_AS and thus
  rejecting valid code such as (create {X}).item := y when `item' from class X does have an assigner.


Revision 75307 - (view) (annotate) - [select for diffs]
Modified Mon Oct 27 23:32:03 2008 UTC (10 years, 11 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 310883 byte(s)
Diff to previous 75283
Fixed eweasel test#exec287 and bug#14921 where if you tried to assign a basic type to
  a TUPLE field which is a reference type, the code generation was incorrect and caused
  a segmentation fault at runtime. Now we use a PARAMETER_B to generate the proper code
  generation because it knows what to generate in such cases.


Revision 75283 - (view) (annotate) - [select for diffs]
Modified Mon Oct 27 14:00:15 2008 UTC (10 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 310675 byte(s)
Diff to previous 75259
Maked Result as initialized and attached if required when processing inherited postconditions.

Revision 75259 - (view) (annotate) - [select for diffs]
Modified Thu Oct 23 18:28:25 2008 UTC (10 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 310226 byte(s)
Diff to previous 75212
Renamed `as_attached' to `as_attached_type' to avoid conflict with a
feature from ANY.
Transformed `to_current_attachment' to `to_other_attachment' as the latter
allows returning an anchored type that permits to avoid reverse assignment.
Implemented features that transform a type to the one with the given
attachment status in TYPE_SET_A which is required to perform conformance
tests for formal generics correctly (see test#attach025).
Taken attachment status of the formal generic when performing conformance
tests (this fixes test#attach025).
Ensured the scope for non-void Result in a postcondition is activated only
when its type is attached as otherwise it is incorrectly treated as
attached regardless of the actual type in void-safe mode. However the
Result is marked as set in the postcondition if it has to be initialized in
the body.
Supported a check for VEVI errors in inherited assertions.
Provided a check for self-initializing attribute bodies.
Avoided a false VEVI error for self-initializing attribute if it is not set
explicitly at the end of a creation procedure.


Revision 75212 - (view) (annotate) - [select for diffs]
Modified Tue Oct 21 16:44:36 2008 UTC (10 years, 11 months ago) by king
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 309906 byte(s)
Diff to previous 75167
Updated feature checker to work correctly with replicated features

Revision 75167 - (view) (annotate) - [select for diffs]
Modified Fri Oct 17 20:41:47 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 308848 byte(s)
Diff to previous 75160
Fixed eweasel test#term161, but also broke eweasel test#term143. The issue is that when a manifest
  array is passed as argument to a qualified routine call, we have to forget all the anchors
  because the code generation does not support that yet and because we forget to mark a creation
  expression or instruction as a qualified call it was not done in this particular case. Now that
  it is done, term143 does not generate the proper code.


Revision 75160 - (view) (annotate) - [select for diffs]
Modified Fri Oct 17 18:03:18 2008 UTC (11 years ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 308573 byte(s)
Diff to previous 75152
Optimized VEVI checks for attributes by avoiding them altogether for deferred classes and classes without attributes.

Revision 75152 - (view) (annotate) - [select for diffs]
Modified Fri Oct 17 08:51:03 2008 UTC (11 years ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 308407 byte(s)
Diff to previous 75150
Changed hierarchy of AST_SCOPE_KEEPER classes by adding a new parent that
can be used to track initialization of variables in addition to their
void-safe scopes.
Added a new visitor class that verifies that creation procedures initialize
attributes that need initialization as required.
Added tracking for local initialization which is a bit different from
tracking attachment status of locals.


Revision 75150 - (view) (annotate) - [select for diffs]
Modified Fri Oct 17 05:46:27 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 308115 byte(s)
Diff to previous 75070
Fixed eweasel test#agent007 because we forgot to register the TUPLE type for the closed operands, we
  could simply crash at compile time in .NET mode because if the TUPLE has some anchors, they will not
  be added to {CLASS_C}.anchored_features which would lead to a crash in CREATE_FEAT when tring to generate
  the TUPLE type encoding.


Revision 75070 - (view) (annotate) - [select for diffs]
Modified Sun Oct 12 05:45:16 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 307719 byte(s)
Diff to previous 75059
Removed useless redefinition of instantiation_in in CL_TYPE_A.
To properly create manifest tuples, arrays and agents, we are now keeping the anchors but only when
  it is an anchor to the current class (ideally we should keep the anchor in all cases, but our
  code generation does not support that, see eweasel test#agent006 for this failure). This fixes
  eweasel tests test#tuple011, test#tuple014.
Due to recent changes in AST_FEATURE_CHECKER_GENERATOR were we keep the anchors most of the time
  we had to fix {CL_TYPE_A}.conform_to so that conformance on TYPED_POINTER is not using `same_as'
  but `valid_generic' which will resolve the anchors. This fixed eweasel test#term132.
Fixed eweasel test#term159 where if you have a conversion as closed argument of an agent it would
 crash the compiler in .NET mode and generate incorrect code in classic.


Revision 75059 - (view) (annotate) - [select for diffs]
Modified Fri Oct 10 08:39:35 2008 UTC (11 years ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 306603 byte(s)
Diff to previous 75056
Ensured the compiler does not crash in void-safe mode when tracking variables set by the built-in features.
Avoided registering attributes as set in the postcondition after reporting an error for them as this is not expected by the variables tracker and may cause the compiler to crash.


Revision 75056 - (view) (annotate) - [select for diffs]
Modified Thu Oct 9 19:12:19 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 306468 byte(s)
Diff to previous 75043
Fixed a catcall due to the recently added CONVERTED_EXPR_AS node. This fixes eweasel test#term159
  when using the workbench compiler with catcall enabled. The issue was that some expressions,
  namely of type OPERAND_AS, have to be kept OPERAND_AS and instead their enclosing expression
  has to be converted.


Revision 75043 - (view) (annotate) - [select for diffs]
Modified Thu Oct 9 04:37:36 2008 UTC (11 years ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 306617 byte(s)
Diff to previous 75033
Added a check at the end of an external routine to ensure the result is not-void when it is of an attached type (see test#attach022).

Revision 75033 - (view) (annotate) - [select for diffs]
Modified Wed Oct 8 19:16:36 2008 UTC (11 years ago) by paulb
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 306500 byte(s)
Diff to previous 75029
Removed conditional statement and used checks instead.


Revision 75029 - (view) (annotate) - [select for diffs]
Modified Wed Oct 8 18:40:29 2008 UTC (11 years ago) by paulb
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 306469 byte(s)
Diff to previous 74971
Protected code against possible calls on Void targets.


Revision 74971 - (view) (annotate) - [select for diffs]
Modified Mon Oct 6 05:13:40 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 306377 byte(s)
Diff to previous 74957
Fixed eweasel test#svalid010 where an assignment using a tuple label would not
  be properly type checked in descendant classes when `full_class_checking' option is enabled.


Revision 74957 - (view) (annotate) - [select for diffs]
Modified Fri Oct 3 20:36:40 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 306299 byte(s)
Diff to previous 74954
Fixed eweasel test#svalid009 where code using the label of an inherited labeled TUPLE which looses
  the label in a descendant would not type check. Now we store the position of the label and extract
  the type of the TUPLE at that position for type checking.
Reorganized ACCESS_FEAT_AS to use flags rather than boolean attributes. Reuse `first' for storing
  either the argument position or the label position.


Revision 74954 - (view) (annotate) - [select for diffs]
Modified Fri Oct 3 20:10:12 2008 UTC (11 years ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 305690 byte(s)
Diff to previous 74922
Removed support for self-initializing types as they may be excluded from
the standard.
Prepared C code generation for attributes with explicit attribute bodies.
Integrated changes that address bug#14453.


Revision 74922 - (view) (annotate) - [select for diffs]
Modified Fri Oct 3 05:07:46 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 308956 byte(s)
Diff to previous 74890
Only replace an expression with a converted expression for non-inherited code, otherwise when
  checking code in a descendant, we might add some conversion which causes the ancestor to have them
  too.
Fixed processing of inherited `to' conversion by using `process_call'. This fixes eweasel test#svalid007
  and properly report VUEX errors in test#svalid008.


Revision 74890 - (view) (annotate) - [select for diffs]
Modified Wed Oct 1 23:20:56 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 308305 byte(s)
Diff to previous 74863
Fixed eweasel test#svalid001 and verified that test#svalid006 indeed report the correct types for the VJAR
  error. To fix this, I've introduced the notion of CONVERTED_EXPR_AS which is an EXPR_AS on which we
  applied a conversion. This node contains the necessary data so that when checked in descendant we can
  simply validate the converted expression and not the original expression. This also required
  updating the parsed AST structure to replace the EXPR_AS node by CONVERTED_EXPR_AS.
  I've updated all visitors to take this into account.
  Thanks to this data, I've also updated the formatter so that all the conversion are visible in the
  flat format of a class. Next step is to show them in gray rather than as normal feature call to better
  see the original code from the injected code.
 
In AST_FEATURE_CHECKER_GENERATOR, removed code in REVERSE_AS processing when source is expanded and
  target reference as this does not make sense anymore with the new expanded rule. Also removed the check
  that all the elements of an array conforms or converts to ANY, by definition everything conforms to ANY
  (this was the old code when expanded did not conform to ANY).

In AST_FEATURE_CHECKER_GENERATOR, removed duplicated code for handling of ~ which was pretty much the
  same as the code for handling = by making sure that BIN_TILDE_AS inherits from BIN_EQ_AS instead of
  duplicating the class.


Revision 74863 - (view) (annotate) - [select for diffs]
Modified Mon Sep 29 16:07:32 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 308795 byte(s)
Diff to previous 74807
Fixed precondition violation in `generate_creation' which does not hold since sometimes `l_call_access'
  is Void (and the original code indeed show this since there was a protection).


Revision 74807 - (view) (annotate) - [select for diffs]
Modified Wed Sep 24 12:58:16 2008 UTC (11 years ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 308801 byte(s)
Diff to previous 74792
Removed initialization of attributes as this should be done in a different way (this fixes bug#14822).

Revision 74792 - (view) (annotate) - [select for diffs]
Modified Tue Sep 23 10:34:09 2008 UTC (11 years ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 308769 byte(s)
Diff to previous 74786
Avoided initialization of a result for built-in features as this is done when the corresponding routine body is processed.

Revision 74786 - (view) (annotate) - [select for diffs]
Modified Tue Sep 23 08:38:28 2008 UTC (11 years ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 308733 byte(s)
Diff to previous 74759
Added a query that tells if a type may need automatic initialization.

Revision 74759 - (view) (annotate) - [select for diffs]
Modified Sun Sep 21 18:50:25 2008 UTC (11 years ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 309783 byte(s)
Diff to previous 74587
Supported initialization of self-initializing attached locals (including Result) and attributes (the latter needs to be done a bit different to take into account explicit attribute declarations and multidot access to the attributes).

Revision 74587 - (view) (annotate) - [select for diffs]
Modified Tue Aug 26 21:09:34 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 305480 byte(s)
Diff to previous 74500
Fixed invariant violation with the creation of scope. Now the context is in the creation
  procedure and not when calling `add_scopes'.
Ensured that a list of name is never empty.


Revision 74500 - (view) (annotate) - [select for diffs]
Modified Tue Aug 19 14:24:14 2008 UTC (11 years, 2 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 305286 byte(s)
Diff to previous 74270
Supported new syntax for attributes (there is no associated semantics yet).

Revision 74270 - (view) (annotate) - [select for diffs]
Modified Tue Jul 29 20:47:44 2008 UTC (11 years, 2 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 304664 byte(s)
Diff to previous 74212
Fixed eweasel test#final063 by ensuring that inline agents as well as fake inline
  agents are part of the normal dependency structure used for dead code removal
  so that we ensure that the body of an inline agent is properly generated if needed.


Revision 74212 - (view) (annotate) - [select for diffs]
Modified Fri Jul 25 21:21:19 2008 UTC (11 years, 2 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 304435 byte(s)
Diff to previous 74183
Switch DEPEND_UNIT.internal_flags to NATURAL_16 to allow more data to be stored in the future.

Revision 74183 - (view) (annotate) - [select for diffs]
Modified Thu Jul 24 16:51:33 2008 UTC (11 years, 2 months ago) by jfiat
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 304457 byte(s)
Diff to previous 73963
Fixed bug#14661: the debugger is unable to evaluate instruction anymore ...
	

Revision 73963 - (view) (annotate) - [select for diffs]
Modified Mon Jun 30 14:09:23 2008 UTC (11 years, 3 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 304253 byte(s)
Diff to previous 73959
Fixed a bug in processing formal generics when an attachment status of the original type was not preserved during evaluation of the adapted type (this fixes bug#14503, test#attach021).

Revision 73959 - (view) (annotate) - [select for diffs]
Modified Sat Jun 28 04:53:56 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 303423 byte(s)
Diff to previous 73936
Fixed eweasel test#incr216 due to previous fix (see rev#73936) which now resets `l_arg_types'
  when we have an error.


Revision 73936 - (view) (annotate) - [select for diffs]
Modified Thu Jun 26 22:33:31 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 303399 byte(s)
Diff to previous 73665
Fixed bug#13881 where if you have a VKCN error when using a routine whose return type is a like argument
  then it would crash instead of reporting the VKCN error. Improved VKCN error reporting by
  providing the instruction or expression which causes the problem.


Revision 73665 - (view) (annotate) - [select for diffs]
Modified Wed May 21 23:14:16 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 302785 byte(s)
Diff to previous 73579
Fixed eweasel test#dotnet108 and bug#14186 by storing the routine IDs of all creation which result
  in creating a CREATE_FEAT object, and not just when the type is explicitely representing an attribute.


Revision 73579 - (view) (annotate) - [select for diffs]
Modified Fri May 16 16:49:50 2008 UTC (11 years, 5 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 302647 byte(s)
Diff to previous 73483
Cosmetics.


Revision 73483 - (view) (annotate) - [select for diffs]
Modified Sat May 10 14:41:38 2008 UTC (11 years, 5 months ago) by king
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 302646 byte(s)
Diff to previous 73277
Added REPLICATED_FEATURE_CALL_WARNING for detailing inherited replicated features being called by inherited features from the same inheritance branch that themselves are not replicated

Revision 73277 - (view) (annotate) - [select for diffs]
Modified Fri May 2 00:01:08 2008 UTC (11 years, 5 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 301906 byte(s)
Diff to previous 73228
Fixed eweasel test#svalid005 by not repeating obsolete warnings for inherited routines (since
  the warning was already raised when checking the routine where it was declared).
Fixed eweasel test#valid219 by not triggering an obsolete warning when we are analyzing an
  obsolete feature.
Added feature context whenever possible so that we know from where the warning is comming from.


Revision 73228 - (view) (annotate) - [select for diffs]
Modified Tue Apr 29 11:35:41 2008 UTC (11 years, 5 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 301563 byte(s)
Diff to previous 73137
Separated registration of (void-safe local) scopes in expressions and
instructions because the latter can later be explicitly changed by
assignment instructions and therefore need more complicated tracking
mechanism.
Introduced new mechanism to track attachment status of read-write locals
that allows combining scope information from different execution paths.
Used this new mechanism to check if a local is properly set.


Revision 73137 - (view) (annotate) - [select for diffs]
Modified Tue Apr 22 18:15:48 2008 UTC (11 years, 5 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 300175 byte(s)
Diff to previous 73124
Reset information gathered during feature processing before and after processing inherited pre- and postconditions to avoid object test locals conflict and false error reports (this fixes test#attach017).

Revision 73124 - (view) (annotate) - [select for diffs]
Modified Sun Apr 20 20:58:53 2008 UTC (11 years, 5 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 300375 byte(s)
Diff to previous 73010
Redesigned the generation of polymorphic wrapper: instead of generating it during the code
  generation of a routine we now do it during the generation of the polymorphic table. Doing
  so fixes eweasel tests test#final051, test#final052, test#final053 and test#final054. The
  execution is slightly slower now since the computation of `pattern_id' for each ENTRY is
  costing a little.

Made sure that `EIFFEL_HISTORY.poly_table' always return non-void if a valid routine ID is used.
Removed optimization of not having deferred routines in the table of routine, it actually made things
  more complicated especially since we need to know the `pattern_id' of the routine on which the
  call is being made.
Added a query `is_deferred' to show that all routines in a table are deferred. It is better than
  returning a Void polytable.

Fixed polymorphic calls on external involving generics, they were not processed at all (this
  fixes test#final054).

Changed `meta_type' for expanded type to simply return the same as reference type since at C
  code generation time they are both EIF_REFERENCE. Fixed `meta_type' in LIKE_CURRENT to be still
  LIKE_CURRENT as it is needed to know how `like Current' is seen in descendant class especially
  when it is used to represent a basic type.

Renamed `feature_i_with_body_index' into `feature_of_body_index' since it returns a FEATURE_I.


Revision 73010 - (view) (annotate) - [select for diffs]
Modified Fri Apr 11 20:17:02 2008 UTC (11 years, 6 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 300310 byte(s)
Diff to previous 73004
Supported object tests in class invariant (this fixes test#attach008).

Revision 73004 - (view) (annotate) - [select for diffs]
Modified Thu Apr 10 11:40:31 2008 UTC (11 years, 6 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 299351 byte(s)
Diff to previous 73003
Terminated scope of a local variable when it is a target of an reverse assignment.

Revision 73003 - (view) (annotate) - [select for diffs]
Modified Thu Apr 10 06:33:19 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 298949 byte(s)
Diff to previous 72955
Removed the old ~ syntax for agents and replaced it with the ~ operator for comparing objects.
This is an initial implementation where it is assumed that `is_equal' always have a `like Current' argument,
  next commit will implement the check at runtime.

Revision 72955 - (view) (annotate) - [select for diffs]
Modified Sat Apr 5 07:27:44 2008 UTC (11 years, 6 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 295970 byte(s)
Diff to previous 72922
Improved support for implicitly attached types that is required if CAP
rules cover not only read-only entities, but also local variables.
Changed processing of implicitly attached types during type checking to
ensure this property is not promoted to the types that are derived from the
other context types (anchored types in particular), because in
non-void-safe mode we cannot be sure that the status of an implicitly
attached type is preserved.
Extended CAP rules to cover Result and local variables.
Added new conditions for variable-based CAP rules: an assignment of a
non-void value and a creation instruction.
Tracked when a variable may get a void value to terminate its non-void
scope.
Modified processing of non-void scopes that is required to implement more
dynamic modifiction of the variable voidness state that was not needed for
read-only entities.
Extended CAP rules to allow left and right parts of equality expressions to
be included in parentheses.


Revision 72922 - (view) (annotate) - [select for diffs]
Modified Tue Apr 1 09:42:38 2008 UTC (11 years, 6 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 292062 byte(s)
Diff to previous 72874
Fixed a bug when type of an address expression was not set if it involved an object test local.

Revision 72874 - (view) (annotate) - [select for diffs]
Modified Wed Mar 26 09:29:11 2008 UTC (11 years, 6 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 292001 byte(s)
Diff to previous 72835
Supported object tests in inherited pre- and postconditions. Now they use different byte node from normal locals, because they have to be reindexed at code generation time to take into account current feature context that may have other object test locals that come from other inherited assertions. They have unique position numbers inside one routine body. At code generation time the object test locals are registered just after normal locals.

Revision 72835 - (view) (annotate) - [select for diffs]
Modified Sat Mar 22 21:03:39 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 288675 byte(s)
Diff to previous 72829
Fixed eweasel test#term106 which was broken with previous commit which removed the call
  to `deep_actual_type' (for eweasel test#term143). Now we only do it if the manifest array
  appears as arguments of a qualified call.


Revision 72829 - (view) (annotate) - [select for diffs]
Modified Fri Mar 21 21:55:55 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 288258 byte(s)
Diff to previous 72649
Fixed `deep_actual_type' so that it does not stop at the first level in generics (this was causing
  eweasel test#final047 to fail).
Removed call to `deep_actual_type' from `process_array_as' in AST_FEATURE_CHECKER_GENERATOR because
  our recent changes to ensure SPECIALs are created with proper type highlighted a bug in eweasel
  test#term143 where a catcall was detected since we used the static solved type of the array.
  Verified that test#term131 is not failing since it was the reason for the call to `deep_actual_type';
  it is not failing because now dead code removal has no impact on the generation of the table
  for anchored creation.
Removed `generate_expanded_creation' and `generate_expanded_initialization' from TYPE_A and descendants
  they were already not used due to a previous commit, but I could not commit TYPE_A due to a conflict change.
Added some missing precondition in `TYPE_A'.
In AST_FEATURE_CHECKER_GENERATOR, added a call to `reset_constraint_error_list' which did not seem to
  cause a failure but for correctness it should always be called.

Fixed some inlining bugs with the various context switches (eweasel test#final042, term#exec283)
  are now successfully passing. One issue was that arguments were not resolved
  when creating the INLINED_FEAT_B node, this ensured that there was no need to call `real_type' and remove
  the risk of being in the wrong contest. Then the getting of registers for inlined arguments, locals and
  result should be done before doing the switch since calling `attachment_type' in the wrong context
  would cause a crash when it has some anchors.

Fixed inlining bug test#final048 where if the inlined routine is present in a descendant but defined in
  a class which does not conform to the current type, we would inline but assuming as context of inlining
  the first descendant defining it, this is bad since some dynamic calls would be replaced with static ones
  and this is wrong, since more than one descendant are present.

Fixed inlining bug test#final047 where printing the current register was not always done in the proper
  context because we did not use INLINED_CURRENT_B in `BYTE_CONTEXT.current_register' but the original
  REGISTRABLE.


Revision 72649 - (view) (annotate) - [select for diffs]
Modified Fri Mar 7 19:02:34 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 288756 byte(s)
Diff to previous 72628
Fixed eweasel test#term154 and bug#14061 where the return type of an agent was being instantiated
  in the context type but actually it would crash doing that and this was useless since the caller
  of `compute_routine' already instantiates it. So we only needed to remove the likes.


Revision 72628 - (view) (annotate) - [select for diffs]
Modified Wed Mar 5 23:19:34 2008 UTC (11 years, 7 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 288801 byte(s)
Diff to previous 72584
Corrected processing of object test in pre- and postconditions so that they are processed similar to normal code (this fixes test#attach014).

Revision 72584 - (view) (annotate) - [select for diffs]
Modified Tue Mar 4 04:52:08 2008 UTC (11 years, 7 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 288134 byte(s)
Diff to previous 72534
Supported implicitly attached types (of constants, agents, tuples, etc.) in non-void-safe context to simplify transition to void-safe context by allowing reattaching values of these types to explicitly attached entities (this fixes test#attach005).

Revision 72534 - (view) (annotate) - [select for diffs]
Modified Thu Feb 28 22:38:05 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 287077 byte(s)
Diff to previous 72532
Improved memory usage of the AST by about 20% in the compiler and reduced the difference in 
  memory usage between the AST_COMPILER_FACTORY and the AST_ROUNDTRIP_COMPILER_LIGHT_FACTORY
  by 5% (used to be more like 25%). I've also reduced the memory usage by 5% for the AST_COMPILER_FACTORY.
  This saving is done by avoiding storing useless information in the ASTs, for example we do not
  store symbols or keywords, but their index in the match list. We also made some space
  saving in the assertions clauses where before `assertions' and `full_assertion_list' where duplicated
  when in fact 99.99% of the time they are identical.
  Added GENERIC_CLASS_TYPE a new descendant of CLASS_TYPE to avoid having an extra arguments for non-generic class.
  Added KEYWORD_STUB_AS to retrieve KEYWORD_AS nodes in the match list (previously they would simply
    be LEAF_STUB_AS).


Revision 72532 - (view) (annotate) - [select for diffs]
Modified Thu Feb 28 20:08:17 2008 UTC (11 years, 7 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 286941 byte(s)
Diff to previous 72486
Changed processing of From part of a loop so that the instructions of the compound are considered at the level of the loop itself which is required to register properly set variables.

Revision 72486 - (view) (annotate) - [select for diffs]
Modified Tue Feb 26 20:33:47 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 286807 byte(s)
Diff to previous 72481
Used more precise type.
Used `index' and `go_i_th' instead of `cursor' and `go_to' which avoids object creation.
Avoid resizing when computing `parents' in CLASS_AS and CLASS_INFO.


Revision 72481 - (view) (annotate) - [select for diffs]
Modified Tue Feb 26 14:03:42 2008 UTC (11 years, 7 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 286821 byte(s)
Diff to previous 72445
Removed VUOT(2) validity error because object test local declaration is no longer required to be explicitly attached according to ECMA decisions.

Revision 72445 - (view) (annotate) - [select for diffs]
Modified Mon Feb 25 15:52:41 2008 UTC (11 years, 7 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 286826 byte(s)
Diff to previous 72419
Ensured a type is converted to its attached variant when required only if
it is not attached yet.
Recorded byte code of pre-/postconditions and rescue clause only if there
are no errors when they are processed as otherwise the corresponding byte
code may be invalid that may trigger assertion violation.
Ensured void-safe context is initialized for class invariant to avoid
mixing its processing with some previous routine or using uninitialized
context if there are no routines at all.


Revision 72419 - (view) (annotate) - [select for diffs]
Modified Sat Feb 23 00:45:27 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 286510 byte(s)
Diff to previous 72090
Changed SUPPLIER_AS to only create the supplier on demands.

Merged TYPE_I and TYPE_A hierarchies in just TYPE_A one.
1-The major change is that now to compute the associated class type (CLASS_TYPE instance) of a TYPE_A
  one has to provide a context in which the TYPE_A instance appear. If no context is provided, then
  formal generics are not replaced. For example: LIST [G] alone will simply give you the LIST [G]
  CLASS_TYPE, but if you do it in the context of TEST [INTEGER], then it will return the
  LIST [INTEGER] CLASS_TYPE.
2-Updated all callers accordingly.
3-Simplified a few calls where before we did `type.associated_class_type.associated_class' to just
  `type.associated_class'.
4-Added new preconditions to the context provided, it really helped finding out when we were not doing
  things properly especially in code generation when regenerating code from parent into descendant.
5-Eventhough TYPE_I disappeared, I kept TYPE_C and its descendants since they are useful to have
  them for C code generation and quick discimination for TYPE_A instances.
6-Made validity of types better controled by checking more things in `{TYPE_A}.is_valid'. For example
  that if type used to represent a class which was expanded and that it is not expanded anymore, then
  the type is not valid anymore.
7-The most problematic change with TYPE_I/TYPE_A was that they had different notion of `is_external'
  we have added `is_true_external' to simplify the code in certain areas where the old TYPE_I semantic
  was needed.

Code generation change:
1-We now assume that the default context is always `{BYTE_CONTEXT}.context_class_type'. Then in
  `real_type' and `creation_type' we use `{TYPE_A}.evaluated_type_in_descendant' to properly evaluate
  a type from the ancestor code in the current context. Very useful for regeneration of inherited
  assertions and replicated features. Before it worked, but it was not clear how to do things properly,
  now it is clear.
2-Changed the way we generate the type information for like arguments: we simply nest calls to resolve
  the type of the arguments. This affects the interpreter and C code generation which includes a level
  ID for computing the type of generics.

C Code generation change:
1-Because debugging was too difficult at some point during that work and also because the name mapping
  we were using limited us to 32767 types and 131071 routines, I've changed the mechanism to not use
  the `encode.c' modules in C/bench and did everything in Eiffel. So now we simply write for a feature
  name FXXX_YYY where XXX is the type ID and YYY the body index. The same kind of changes have been
  done for other names (See ENCODER class for details.).
2-We also use `type_id' instead of `static_type_id' for names. The reason it is safe to do so is because
  `type_id' never changes in workbench mode and that in finalized mode, even if you have different
  incremental recompilation, 2 projects should generate more or less the same code at the ID levels
  making it easier to compare them.
3-Changed the way type are created. Instead of having a CREATE_INFO instance in the TYPE_I objects
  used to properly generate the type, we simply use the original TYPE_A instance. That way when we
  have an anchor, we either generate its `actual_type' or its anchor spec depending on the value of
  `use_info. We still use CREATE_INFO to generate the type information but instead of being an object
  in each TYPE_I, it is merely a once that we reinitialize each time we need it.
4-ONE CRITICAL ASPECT OF THE CHANGE #3 was that storable depends on the way type descriptions are generated
  and thanks to eweasel test#storable013 I was able to catch this much earlier in the process.
5-Generates less polymorphic tables for attributes and types specification. What happened before was
  that when we needed a polymorphic type specification for example to create `like x' where x is covariantly
  redefined, we were generating at the same time the polymorphic table for `x' even though if `x'
  was not actually used in the system. This reduces by a tiny amount only the size of the executable.
6-Made the DESCRIPTOR entries much smaller than they used to be by computing the number of ancestors
  instead of allocating for the numbers of routines which was really silly.

IL code generation change:
1-Provided a implementation for creation of BIT constants in .NET however it does not completely work yet,
  it has to do with the manner we generate the BIT_REF class.
2-Changed the way we compare signatures, we store a CLASS_TYPE and a routine ID instead. And then when
  needed we refetch the FEATURE_I object to perform the signature comparions. The issue is that the previous
  solution would not work if NATIVE_ARRAY and TYPED_POINTER do not record all the possible genereric
  derivations in which they are present which is now the case for simplicity.
3-Fixed a bug in code generation for a TYPE_FEATURE_I that is instantiated as a basic type. We would
  generate its associated reference type instead of the basic type. It was not caught before because those
  routines where never called at runtime unless you had a formal generic parameter creation constraint.
4-Fixed an inconsistency shown by eweasel test#incr168 where a precondition check was generated eventhough
  none was needed because one inherited routine had a True precondition. The C code was doing it ok, but
  not .NET
5-Found out see eweasel test#final041 that we first generate inherited assertion and then precondition,
  which is the contrary of what is done in melted or C code generation.
6-Simplified creation of manifest ARRAYS and TUPLE by avoiding a local variable.


Debugger:
1-Updated the code accordingly to the TYPE_I/TYPE_A merge
2-Fixed bug in {DBG_EVALUATOR}.prepare_parameters so that we do not use BYTE_CONTEXT to resolve
  the type but `instantiation_in' instead. It seems to solve one case that the previous debugger did
  not handle (See updated comment).
3-Fixed precondition violation in
  {AST_DEBUGGER_EXPRESSION_CHECKER_GENERATOR}.expression_or_instruction_type_check_and_code where
  we were still trying to evaluate in the descendant if the parent evaluation failed. Causing some
  precondition violations since the AST was not completely annotated with IDs needed for resolution.

Bug fixes:
1-Fixed issue with the way we maintained {CLASS_C}.generic_features, because you could rebuild the list
  without recompiling descendants (case of modifying only a contract of the class) and the rebuilding
  would yield new routine IDs. Then during either type checking or code generation the evaluation of 
  `{TYPE_A}.evaluate_type_in_descendant' could fail because it is not find the new routine ID in the
  descendant class. Now we preserve the routine ID as long as we can, same with feature ID.
2-Made `feature_of_rout_id' works to find the invariant feature.
3-Made sure that when removing an ID from a server it is also removed from the TMP server. Added
  a `not_present' postcondition after calling `remove' to ensure that.


Revision 72090 - (view) (annotate) - [select for diffs]
Modified Tue Jan 29 01:02:24 2008 UTC (11 years, 8 months ago) by king
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 285828 byte(s)
Diff to previous 71773
Updated to new degree 5 parsing of built ins.

Revision 71773 - (view) (annotate) - [select for diffs]
Modified Sat Jan 5 01:37:46 2008 UTC (11 years, 9 months ago) by king
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 286164 byte(s)
Diff to previous 71669
Added local optimizations.
Added support for new stateful built in generator.

Revision 71669 - (view) (annotate) - [select for diffs]
Modified Fri Dec 28 13:35:25 2007 UTC (11 years, 9 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 285587 byte(s)
Diff to previous 71590
Avoided precondition violation by removing an assumption that the previously generated byte code is of expected type which is not true when there are errors (this fixes test#incr108 when compiler runs with assertions).

Revision 71590 - (view) (annotate) - [select for diffs]
Modified Thu Dec 20 20:54:13 2007 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 285578 byte(s)
Diff to previous 71460
Removed the need of TYPE_A in the parser by having a descendant of ARRAY_AS (namely COMPILER_ARRAY_AS)
  which uses the TYPE_A. This descendant being part of the compiler, it can use TYPE_A.


Revision 71460 - (view) (annotate) - [select for diffs]
Modified Wed Dec 12 00:16:25 2007 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 285569 byte(s)
Diff to previous 71367
When full class checking is enabled we do not and cannot check .NET external features since
  no body is provided.


Revision 71367 - (view) (annotate) - [select for diffs]
Modified Tue Dec 4 18:37:31 2007 UTC (11 years, 10 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 285536 byte(s)
Diff to previous 71247
Supported object test local scope for elseif part of a conditional instruction (see test#attach002).

Revision 71247 - (view) (annotate) - [select for diffs]
Modified Thu Nov 22 20:33:36 2007 UTC (11 years, 10 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 285170 byte(s)
Diff to previous 71179
Fixed bug#13660 by avoiding reporting a VEVI error for Result in a deferred function.

Revision 71179 - (view) (annotate) - [select for diffs]
Modified Fri Nov 16 06:50:31 2007 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 285105 byte(s)
Diff to previous 71165
Fixed eweasel test#term152 and bug#13552 where a qualified call on a procedure would
  cause a crash instead of reporting the VKCN(3) error.


Revision 71165 - (view) (annotate) - [select for diffs]
Modified Thu Nov 15 17:54:08 2007 UTC (11 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 285022 byte(s)
Diff to previous 71150
Delayed registering a target variable as initialized by assignment and creation instructions to prevent from using it in expressions of the same instruction before it becomes properly set.

Revision 71150 - (view) (annotate) - [select for diffs]
Modified Wed Nov 14 19:34:34 2007 UTC (11 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 283806 byte(s)
Diff to previous 71133
Supported attachment marks for formal generic parameter (in internal
structures only).
Refactored types that can have attachment marks into a separate class.
Fixed issue when "like Current" was not considered as attached even when
compiling with an option "is_attached_by_default".
Taken into account attachment status when comparing types for equality.
Made TUPLE type in an agent type (PROCEDURE or FUNCTION) attached in
void-safe context, so that it conforms to the usual type declaration.
Ensured actual type preserves attachment status of the corresponding
anchored type.


Revision 71133 - (view) (annotate) - [select for diffs]
Modified Tue Nov 13 21:48:45 2007 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 283431 byte(s)
Diff to previous 71130
Enabled setting of `is_object_test_local' in ACCESS_FEAT_AS when handling an object
  test local.


Revision 71130 - (view) (annotate) - [select for diffs]
Modified Tue Nov 13 14:25:17 2007 UTC (11 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 283305 byte(s)
Diff to previous 71125
Added an implementation constraint that object test cannot be used in a precondition or a check instruction.

Revision 71125 - (view) (annotate) - [select for diffs]
Modified Tue Nov 13 09:02:19 2007 UTC (11 years, 11 months ago) by jfiat
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 282385 byte(s)
Diff to previous 71062
Fixed bug#13572: Impossible to evaluate TEST's attribute, when stopped in an inherited feature !
Better code to fix bug#12606: Stepping with Auto Expressions in sample graphical app causes crash.

* dbg_expression_evaluator_b.e : 
    be sure to set the written class in the Ast context
* ast_feature_checker_generator.e, 
  ast_debugger_expression_checker_generator.e: 
    move expression evaluation's specific feature to AST_DEBUGGER_EXPRESSION_CHECKER_GENERATOR

Revision 71062 - (view) (annotate) - [select for diffs]
Modified Tue Nov 6 14:51:15 2007 UTC (11 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 284121 byte(s)
Diff to previous 71023
Fixed bug#13554 by checking against names of local variables rather than of used names that are actually set for agents.

Revision 71023 - (view) (annotate) - [select for diffs]
Modified Sat Nov 3 00:33:19 2007 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 284123 byte(s)
Diff to previous 70997
Fixed eweasel test#multierr008 and test#multierr009 by preventing descendant classes
  of a class with degree 3 errors to check inherited code since its AST might not be
  properly annotated.


Revision 70997 - (view) (annotate) - [select for diffs]
Modified Thu Nov 1 18:19:43 2007 UTC (11 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 283719 byte(s)
Diff to previous 70980
Avoided marking a variable as initialized when it is used as a target of a reverse assignment.

Revision 70980 - (view) (annotate) - [select for diffs]
Modified Thu Nov 1 08:09:16 2007 UTC (11 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 283288 byte(s)
Diff to previous 70934
Added validity checks to ensure that variables are properly set in void-safe context.

Revision 70934 - (view) (annotate) - [select for diffs]
Modified Mon Oct 29 18:50:34 2007 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 279252 byte(s)
Diff to previous 70932
When the condition of a `if' statement has an error, we should still allow for checing the
  `elsif' clauses and `else' clause as well as the various compounds.


Revision 70932 - (view) (annotate) - [select for diffs]
Modified Mon Oct 29 18:24:37 2007 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 279183 byte(s)
Diff to previous 70926
Renamed {CLASS_C}.descendants into {CLASS_C}.direct_descendants.

Revision 70926 - (view) (annotate) - [select for diffs]
Modified Sat Oct 27 07:28:29 2007 UTC (11 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 279162 byte(s)
Diff to previous 70802
Ensured types of constant attributes, manifest constants, manifest arrays, types, type expressions, agents, creation expressions, current and creation types in creation instructions are attached if the source code is marked as void-safe.

Revision 70802 - (view) (annotate) - [select for diffs]
Modified Tue Oct 23 12:52:00 2007 UTC (11 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 277002 byte(s)
Diff to previous 70778
Fixed bug#13490 by disabling CAP rules for feature arguments when the source code is not marked as void-safe as otherwise conformance errors are reported for the non-void-safe code.

Revision 70778 - (view) (annotate) - [select for diffs]
Modified Mon Oct 22 05:25:01 2007 UTC (11 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 276931 byte(s)
Diff to previous 70747
Supported configuration options that tell whether a class is void-safe and
what the default attachment status of a type is.
Added checks for VUTA error when target of a call is not attached (the
check is activated for void-safe classes only).
Ensured the attached status of arguments that are in scope of the
corresponding voidness tests.
Ensured the attached status of Current.


Revision 70747 - (view) (annotate) - [select for diffs]
Modified Sat Oct 20 00:06:53 2007 UTC (12 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 276602 byte(s)
Diff to previous 70739
Added support for process ~ and /~ operator. However those are not yet recognized by the parser
  since we still want to accept the ~ to mean agents. Once the code generation for ~ and /~ is completed
  we will allow them in the parser.


Revision 70739 - (view) (annotate) - [select for diffs]
Modified Fri Oct 19 20:56:12 2007 UTC (12 years ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 276122 byte(s)
Diff to previous 70634
Implemented code generation for object test.

Revision 70634 - (view) (annotate) - [select for diffs]
Modified Wed Oct 17 05:32:05 2007 UTC (12 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 275895 byte(s)
Diff to previous 70632
Fixed eweasel test#multierr006 where if the expression of an `elsif' construct had an 
  error we would crash instead of continuing the checking.


Revision 70632 - (view) (annotate) - [select for diffs]
Modified Wed Oct 17 04:23:47 2007 UTC (12 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 275863 byte(s)
Diff to previous 70577
Fixed eweasel test#multierr005 crashing when a manifest array has an expression with an error.


Revision 70577 - (view) (annotate) - [select for diffs]
Modified Mon Oct 15 05:13:09 2007 UTC (12 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 275752 byte(s)
Diff to previous 70574
Fixed improperly rewritten postcondition.


Revision 70574 - (view) (annotate) - [select for diffs]
Modified Sun Oct 14 19:52:54 2007 UTC (12 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 275748 byte(s)
Diff to previous 70569
Fixed eweasel test#dotnet007 when you have `create x' and `x' is a .NET class we should not
  even try to call `default_create'.


Revision 70569 - (view) (annotate) - [select for diffs]
Modified Sun Oct 14 10:03:53 2007 UTC (12 years ago) by jfiat
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 275589 byte(s)
Diff to previous 70568
+ first implementation of execution replay (classic only, and limited)
+ remote object storage (save debuggee object, and load from saved object files)
+ now the feature to run the debuggee uses DEBUGGER_EXECUTION_PARAMETERS (this simplifies some code related to debuggee launching and so on)
+ fixed annoying issue with expression on object, the context feature were causing erroneous class context.
+ simplified DBG_EVALUATOR design, and get rid of the associated once from SHARED)DBG_EVALUATOR.
+ cosmetics

(note: the RT_.. classes need to be cleaned up from extra debug clauses, but this will be done before the release, for now let's keep them for debugging purpose)

Revision 70568 - (view) (annotate) - [select for diffs]
Modified Sat Oct 13 21:13:05 2007 UTC (12 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 275617 byte(s)
Diff to previous 70565
Fixed a tiny issue with custom attribute generation as I had changed the conditional to not
  dot anything when the creation type was incorrect, but the previous conditional was already
  incorrect, we just didn't see it.


Revision 70565 - (view) (annotate) - [select for diffs]
Modified Fri Oct 12 23:47:04 2007 UTC (12 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 275626 byte(s)
Diff to previous 70534
Now compiler is able to report more than one error at degree 3 and per routine. Basically we
  most of the time check that the error_level is unchanged before continuing the type checking.
  All instructions are checked whenever possible to report the most errors without generating
  false alarms.


Revision 70534 - (view) (annotate) - [select for diffs]
Modified Tue Oct 9 11:31:35 2007 UTC (12 years ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 266621 byte(s)
Diff to previous 70525
Supported syntax for explicit declaration of attached and detachable types.
Modified conformance rules to take into account attachment status.
Supported syntax for object test.
Added validity rules for object test (including temporary restriction on
object test local names).
Supported the notion of scoped entities with the associated rules for void
test and object test that effectively are the basis for the CAPs.
Modified AST and associated visitors to take into account object test
nodes.


Revision 70525 - (view) (annotate) - [select for diffs]
Modified Mon Oct 8 21:17:03 2007 UTC (12 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 262020 byte(s)
Diff to previous 70524
Added support for generating more than one error at degree 4:
- Fixed issue with more than one error in degree 5 as found in test#multierr003
- Removed `mark' and `nb_errors' from ERROR_HANDLER, use a new query `error_level' to find out if
  more errors have been added.
- Moved type checking and instantiator from degree 4 to degree 3. Indeed it was shown by eweasel
  test#vfav401 that moving a class such as BOOLEAN in the system that has an error late in degree 4
  would yield a somewhat complete recompilation of the system, but in that case, `creators' on
  many classes is computed and therefore is used to check the validity of the expanded (with regards to
  default_create), unfortunately we have stored the former `routine ID' of {ANY}.default_create, not the new
  one (this is when checking ANY using the once per compilation of {SYSTEM_I}.default_create_rout_id
  computing the former one, not the new one) and thus fails to validate many basic types.
  Also to prevent the wrong IDs to be stored, we reset them at the beginning of each degree 4.
  The only drawbacks is that some errors for incorrect types are reported at degree 3 instead of 
  degree 4 and the check is done at the beginning of {EIFFEL_CLASS_C}.pass3.
- Because once you have a class with an error at degree 4, we have added `is_ignored_for_degree_4' in
  CLASS_C, so that all the descendants of that class are not processed.


Revision 70524 - (view) (annotate) - [select for diffs]
Modified Mon Oct 8 20:57:33 2007 UTC (12 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 261858 byte(s)
Diff to previous 70453
Gave better name `_rout_id' (instead of `_id') since it represents a routine ID.


Revision 70453 - (view) (annotate) - [select for diffs]
Modified Fri Sep 28 21:17:12 2007 UTC (12 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 261848 byte(s)
Diff to previous 70396
Fixed eweasel test#exec280 where a call `create a' where a is of type ANY would
  not generate the call to default_create. Which is an issue when the type of `a'
  is redefined in a descendant and the new type also redefines `default_create'.
  For now we remove the optimization that was not generating the call to default_create
  in AST_FEATURE_CHECKER_GENERATOR and instead did more optimization when generating
  the C code in finalized mode.
At the same time we did more optimization, if you have create x.make and the type of
  `x' is explicit (i.e. never changes) then the call to `make' is done statically
  (before it was done through dynamic_binding). Also if again `x' is explicit and `make'
  has an empty body, we do not generate the call.


Revision 70396 - (view) (annotate) - [select for diffs]
Modified Fri Sep 21 21:42:57 2007 UTC (12 years ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 261956 byte(s)
Diff to previous 70027
New implementation of FEATURE_I access: instead of having to retrieve a FEATURE_TABLE with
  all its FEATURE_I instances, we now only retrieve the FEATURE_I objects that we are interested in.
  It makes a lot of difference during degree 3 where we go from 145s down to 95s on the 5500 classes
  of the graphical compiler for a normal compilation. When the full class checking is enabled,
  we go from 186s down to 80s on the 2500 classes of the batch compiler (note that the time of the
  old compiler without full class checking is about 40s).

Summary of various changes:
- Removed useless CACHE descendant classes and made CACHE effective.
- Added crucial assertion to CACHE.force that says that you can only call `force' if there is
  no item already present.
- Relaxed preconditions on `item' and `disk_item' of ISE_SERVER and descendants to only require the
  positivness of the argument. That way instead of having the pattern:
     if server.has (id) then
	    l_result := server.item (id)
     end
  we simply do:
     l_result := server.item (id)
  This makes things a little bit faster since currently our HASH_TABLE is not optimized for the same
  consecutive search.
- Removed complex code using both TMP_SERVER and SERVER by just using SERVER.item which will look into
  the TMP_SERVER. This should actually speed things up in incremental recompilation where most of the stuff
  is always in the SERVER and not in the TMP_SERVER.
- Changed the way we compute the SELECT_TABLE. Now it is not done in ORIGIN_TABLE, it is done once
  the FEATURE_TABLE has been properly computed. We have also added quick lookups of features based on
  their `feature_id' as well as on their `body_index'.
- changed the way we compute FEATURE_TABLE since now it contains only IDs, we use a new server
  TMP_FEATURE_SERVER to store each FEATURE_I object which gets an ID when stored.
- To speed up FEATURE_TABLE traversal, we created COMPUTED_FEATURE_TABLE which is an ARRAYED_LIST of
  FEATURE_I instances and optimized `FEATURE_TABLE.start' to get the COMPUTED_FEATURE_TABLE object if
  in memory or built a new one otherwise. This had a good impact on traversals.
- Possibly fix an issue with SELECTION_LIST.one_body_only' which was only checking the first and last
  body ID in the ROUT_ID_SET. Looks to me that you have to check all of them.
- Reduced the usage of the now removed FEAT_TBL_SERVER.(has|item) by simply querying it from CLASS_C.
- Removed usage of FEATURE_TABLE.select_table.item (x) and instead use FEATURE_TABLE.feature_of_rout_id (x).
- Display more GC data when the `timing' debug clause is enabled.
- Removed the usage of DELAY_SERVER that was not bringing any performance improvements.


Revision 70027 - (view) (annotate) - [select for diffs]
Modified Sat Aug 18 01:11:56 2007 UTC (12 years, 2 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 262045 byte(s)
Diff to previous 69556
Use `integer_type' rather than recreating an instance of INTEGER_A.


Revision 69556 - (view) (annotate) - [select for diffs]
Modified Thu Jul 19 16:37:33 2007 UTC (12 years, 3 months ago) by jfiat
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 262085 byte(s)
Diff to previous 69057
Fixed last part of bug#12606: Stepping with Auto Expressions in sample graphical app causes crash
this was related to evaluation of local in ancestor (generic type) from current class (not generic).

Revision 69057 - (view) (annotate) - [select for diffs]
Modified Wed Jun 13 18:50:18 2007 UTC (12 years, 4 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 261630 byte(s)
Diff to previous 68998
type_set_a.e: added new feature to complete API: fast access to any feature of a type set by a routine id.
ast_decorated_output_strategy.e and ast_breakable_slot_strategy.e: Fixed various bugs, the ones reported are:
 bug#13077, bug#13011, bug#13010
ast_feature_checker_generator.e: Code to store convert in BINARY_AS + Cosmetics.
binary_as.e: Added flag to store whether left type was converted to right type or not.


Revision 68998 - (view) (annotate) - [select for diffs]
Modified Mon Jun 11 01:41:38 2007 UTC (12 years, 4 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 261646 byte(s)
Diff to previous 68852
vtgc2.e: Error printing improved.
ast_feature_checker_generator.e: Added a protection for NONE types and refactored code. Compare bug#13012 (test#fixed133).
class_c.e and formal_a.e: Bugfix related to bug in ast_feature_checker_generator.e
mc_feature_info.e: added constraint position to output (more information for the user)
renaming_a.e: implemented alias support for multi constraints. Various bugs fixed, see list below.
type_set_a.e: went from is_loose to has_formal as is_loose includes like which is ok.
ast_compiler_factory.e: Added comment about where similar code can be found code.
formal_constraint_as.e: Added code to print erros without using the compiled version of a renaming, as it cannot reproduce the complete information.
rename_clause_as.e: Added two features to support error output generation.

The following bugs are fixed because of better error printing and alias support for multi-constraint formals:
 * bug#12776 with test#multicon044
 * bug#12778 (now there is a proper error message)
 * bug#12877 with test#multicon045
 * bug#12785 with test#multicon047

Revision 68852 - (view) (annotate) - [select for diffs]
Modified Mon Jun 4 18:15:15 2007 UTC (12 years, 4 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 261168 byte(s)
Diff to previous 68802
Fixed bug#12818 (assigner command).
Added more support for alias features.
vwbr.e: Extended the error class to be able to support multi constraint error messages (switcht from CLACC_C to TYPE_A)
formal_a.e: Removed obsolete feature `has_multi_constraints'
gen_type_a.e: Cosmetics
renaming_a.e: Enabled storage of alias names. Detection of Infix/Prefix is not implemented (see bug#12817). 
type_set_a.e: Changed code related to alias names and added some more contracts.
formal_constraint_as.e: Creation of renaming with alias names
ast_feature_checker_generator.e: Fixed bug#12818 (assigner command) and fixed a bug for infix features.
byte_context.e: Fixed bug#12784 reproduced by test#multicon041.
constraining_type_as.e: refactored code into query
ast_formal_generics_pass2.e: In case of enabled assertions there are cases where the checks fail.


Revision 68802 - (view) (annotate) - [select for diffs]
Modified Fri Jun 1 06:20:25 2007 UTC (12 years, 4 months ago) by jfiat
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 260396 byte(s)
Diff to previous 68788
Reversed erroneous commit.

Revision 68788 - (view) (annotate) - [select for diffs]
Modified Thu May 31 16:14:25 2007 UTC (12 years, 4 months ago) by jfiat
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 260412 byte(s)
Diff to previous 68627
- Do not show an hidden call stack tool when exception occurs (see bug#12919)
- fixed issue related to inline agent, and auto expressions feature of watch tools.


Revision 68627 - (view) (annotate) - [select for diffs]
Modified Wed May 23 23:31:00 2007 UTC (12 years, 4 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 260396 byte(s)
Diff to previous 68408
* Clean-Up
* Switched from VTGD back to VTCG which yields in proper error location in more cases.
* il_node_generator.e: fixed a bug by protecting a call on void target

Revision 68408 - (view) (annotate) - [select for diffs]
Modified Thu May 17 20:48:38 2007 UTC (12 years, 5 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 260371 byte(s)
Diff to previous 68370
Commented local that is currently used in commented code.


Revision 68370 - (view) (annotate) - [select for diffs]
Modified Wed May 16 15:23:59 2007 UTC (12 years, 5 months ago) by juliant
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 260369 byte(s)
Diff to previous 68357
removed processing of restrict node

Revision 68357 - (view) (annotate) - [select for diffs]
Modified Wed May 16 05:20:20 2007 UTC (12 years, 5 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 260497 byte(s)
Diff to previous 68349
Fixed martin's question.


Revision 68349 - (view) (annotate) - [select for diffs]
Modified Wed May 16 00:29:34 2007 UTC (12 years, 5 months ago) by juliant
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 260558 byte(s)
Diff to previous 68291
added statistics about total cat calls.

Revision 68291 - (view) (annotate) - [select for diffs]
Modified Mon May 14 18:07:06 2007 UTC (12 years, 5 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 258483 byte(s)
Diff to previous 68280
ast_feature_checker_generator.e: a number of bugs has been fixed found while executing tcs#26. The bugs are catched by several already existing eweasel tests.
gen_type_a.e: Fixed bug#12704/test#valid214
formal_dec_as.e: By uncommenting the newly added lines every formal will be regarded as a multi constrained one. This is part of tcs#26.

Revision 68280 - (view) (annotate) - [select for diffs]
Modified Sun May 13 18:06:54 2007 UTC (12 years, 5 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 255226 byte(s)
Diff to previous 68089
Supported reattachment of objects of types that are generic derivations
with expanded parameters to entities of types that are suitable generic
derivations with reference parameters.



Revision 68089 - (view) (annotate) - [select for diffs]
Modified Thu May 3 18:36:31 2007 UTC (12 years, 5 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 254043 byte(s)
Diff to previous 68060
Refactored RENAMED_TYPE_A to RENAMED_TYPE [G -> TYPE_A]
This change allows us to program type safe if possible.

Revision 68060 - (view) (annotate) - [select for diffs]
Modified Wed May 2 16:30:20 2007 UTC (12 years, 5 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 254018 byte(s)
Diff to previous 68030
Bug fix for bug#12561.
ast_feature_checker_generator.e: It contains the bugfix for code which handles the case when a feature is processed with the `is_inherited' flag set to true. The result type needs to be adapted properly for the multiconstraint case.

Revision 68030 - (view) (annotate) - [select for diffs]
Modified Mon Apr 30 18:38:45 2007 UTC (12 years, 5 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 253409 byte(s)
Diff to previous 67957
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 67957 - (view) (annotate) - [select for diffs]
Modified Mon Apr 23 21:58:30 2007 UTC (12 years, 5 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 253460 byte(s)
Diff to previous 67948
* mostly removed my TODOs
* removed wrong usage of `{CLASS_C}.constraint' from ast_breakable_slot_startegy.e
* refactored constraint_fixed back into constraint
* degree_4.e: removed check as assumptions seemed to be correct


Revision 67948 - (view) (annotate) - [select for diffs]
Modified Sat Apr 21 00:50:00 2007 UTC (12 years, 6 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 253599 byte(s)
Diff to previous 67862
formal_a.e: Added feature to check whether a formals constraint has a renaming or not. This is a necessary adaptation to handle single constraints which have a renaming correctly.
gen_type_a.e: provide location information.
renamed_type_a.e: Fixed bug in is_equivalent
renaming_a.e: Added a feature to map old names onto their new names.
type_a.e: added feature allows to check for certain conditions without a reverse assignment to formal_a.e
formal_constraint_as.e: removed too strong error handling (eweasel tests failed because of this, that's why it is removed)
ast_feature_checker_generator.e: Bug fix for bug#12503 and bug#12504
formal_constraint_as.e: Added a feature to support changes in formal.a and fixed a plain wrong feature.
named_tuple_type_as.e: fixed a bug which printed one comma too much in the `dump' feature



Revision 67862 - (view) (annotate) - [select for diffs]
Modified Tue Apr 17 02:11:27 2007 UTC (12 years, 6 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 251313 byte(s)
Diff to previous 67856
* Fixed minor bug in FORMAL_CONSTRAINT_AS (renaming of single constraint type was not checked)
* Adapted precondition of conformance features in TYPE_SET_A
* Refactored EXTENDED_TYPE_A into RENAMED_TYPE_A.
* Refactored MC_ERROR_REPORT into MC_FEATURE_INFO

Revision 67856 - (view) (annotate) - [select for diffs]
Modified Mon Apr 16 19:22:30 2007 UTC (12 years, 6 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 251321 byte(s)
Diff to previous 67847
Cosmetics: I replaced double (or more) lines in the source code by single lines automatically. So you might hit anomalies. But I hope they are just a few exceptions.

Revision 67847 - (view) (annotate) - [select for diffs]
Modified Fri Apr 13 22:40:42 2007 UTC (12 years, 6 months ago) by juliant
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 251322 byte(s)
Diff to previous 67846
Added configuration option to activate the catcall check.
Added catcall check for feature calls on non-generics.
Added warning for catcalls.


Revision 67846 - (view) (annotate) - [select for diffs]
Modified Fri Apr 13 21:29:28 2007 UTC (12 years, 6 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 245768 byte(s)
Diff to previous 67828
cosmetics: proof of concept for removal of double new lines in code


Revision 67828 - (view) (annotate) - [select for diffs]
Modified Fri Apr 13 00:34:21 2007 UTC (12 years, 6 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 245678 byte(s)
Diff to previous 67762
* The commit of `TYPE_A_CHECKER' implements 8.12.12 (creation readiness) of ECMA 2nd Edition.
  Tests assocaited with this: valid208, valid207, incr201, valid139, term147
* The split of `remaining_validity_check_list' into a temporary buffer and the global list should prevent incremental bugs.
  Tests associated with this: multicon15, multicon31, incr283
* Refactored named_tuple_type_a.e to use function `add_future_checking'
* Refactired error generatuion in gen_type_a.e to a function.

Revision 67762 - (view) (annotate) - [select for diffs]
Modified Fri Apr 6 19:35:57 2007 UTC (12 years, 6 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 245357 byte(s)
Diff to previous 67656
* Fixed a bug#12452 related to test#valid207.
* Added a question to degree 4.
* Changed from VEEN error to VTMC1 for the multi constraint case.
* Fixed bugs in the checking of the creation constraints (reported by multicon14 and multicon115):
  * generic types derived with deferred classes should never be considered creation ready if the according formal has a creation constraint_info
  * creation constraint check was done with feature name after renaming has happend, it should however be done with the original name of the feature.
* conform_to of TYPE_A can now be used transparently with TYPE_SET_A (as TYPE_SET_A was not always an descendant of TYPE_A this was a bug)
* Tried to improve output of constraint_info.e, not yet fully succeeded. Also related to bug#12452.


Revision 67656 - (view) (annotate) - [select for diffs]
Modified Sun Apr 1 01:39:45 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 243743 byte(s)
Diff to previous 67649
Fixed VWEQ warning were a check statement was comparing an expanded with NONE.


Revision 67649 - (view) (annotate) - [select for diffs]
Modified Sat Mar 31 01:36:09 2007 UTC (12 years, 6 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 243751 byte(s)
Diff to previous 67286
* Fixed bugs: bug#12316, bug#12420
* Fixed typos and did minor cosmetics

Revision 67286 - (view) (annotate) - [select for diffs]
Modified Wed Mar 14 16:00:36 2007 UTC (12 years, 7 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 237603 byte(s)
Diff to previous 67264
Removed non-used local.


Revision 67264 - (view) (annotate) - [select for diffs]
Modified Wed Mar 14 01:45:26 2007 UTC (12 years, 7 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 237818 byte(s)
Diff to previous 67227
- Fixed bug#12289: Flat view should work in more cases again.
- API changes to TYPE_SET_A and refactoring of feature names.
- Deleted obsolete features from MC_ERROR_REPORT

Revision 67227 - (view) (annotate) - [select for diffs]
Modified Tue Mar 13 01:32:16 2007 UTC (12 years, 7 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 237760 byte(s)
Diff to previous 67219
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 67219 - (view) (annotate) - [select for diffs]
Modified Mon Mar 12 22:38:19 2007 UTC (12 years, 7 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 222920 byte(s)
Diff to previous 67176
Fixed incorrect usage of `agent_keyword' on INLINE_AGENT_CREATION_AS since this
  can be Void. Instead we should have been using `start_location' which is guaranteed
  to work all the time.


Revision 67176 - (view) (annotate) - [select for diffs]
Modified Sat Mar 10 01:10:13 2007 UTC (12 years, 7 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 222914 byte(s)
Diff to previous 67169
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 67169 - (view) (annotate) - [select for diffs]
Modified Fri Mar 9 18:40:08 2007 UTC (12 years, 7 months ago) by juliant
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 220946 byte(s)
Diff to previous 66895
Added single file compilation (http://eiffelsoftware.origo.ethz.ch/index.php/Compilation_Without_Configuration). E.g 'ec class_file.e -library vision2' is possible for compilation without a configuration file.

Revision 66895 - (view) (annotate) - [select for diffs]
Modified Sun Feb 25 17:11:57 2007 UTC (12 years, 7 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 220404 byte(s)
Diff to previous 66669
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 66669 - (view) (annotate) - [select for diffs]
Modified Wed Feb 14 11:28:48 2007 UTC (12 years, 8 months ago) by jfiat
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 218187 byte(s)
Diff to previous 66295
- Added the possibility to evaluate an instruction with the debugger (i.e: procedure call)
- fixed issue when raising default debug layout, the object tool is now selected
- added Auto expression toolbar button in the watch tool
- fixed minor bug with check menu command related to the "is_selected" state


Revision 66295 - (view) (annotate) - [select for diffs]
Modified Fri Jan 26 18:00:47 2007 UTC (12 years, 8 months ago) by jfiat
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 216862 byte(s)
Diff to previous 66200
- fixed an issue where ROUTINE_AS.number_of_breakpoint_slots is zero when it should not be zero
- move synchronisation of BREAKPOINT in DEBUG_INFO. Now if the break line number is too hight, reset it to the last possible index (if no bp is already there)
- bp print_message now expand the %N and %T to help formatting output.

Revision 66200 - (view) (annotate) - [select for diffs]
Modified Thu Jan 25 01:45:31 2007 UTC (12 years, 8 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 216488 byte(s)
Diff to previous 66041
Performed some renaming of constants in PREDEFINED_NAMES since they should have the following
  pattern: XXX_name_id.
Added `has' to NAMES_HEAP to find out if there is a string associated to a given ID.


Revision 66041 - (view) (annotate) - [select for diffs]
Modified Fri Jan 19 17:08:15 2007 UTC (12 years, 9 months ago) by jfiat
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 216483 byte(s)
Diff to previous 65991
fixed bug#11327 : Postcondition line highlighted instead of "end" (and similar bug#11815)
The number_of_breakpoints were not taking into account inherited postconditions.
And instead of using this value to generate the debugger hook for the "end of feature" bp slot, we now use the effective count of generated hook for the related feature.

Revision 65991 - (view) (annotate) - [select for diffs]
Modified Wed Jan 17 21:24:16 2007 UTC (12 years, 9 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 216322 byte(s)
Diff to previous 65447
Supported indexing tags that allow for custom attributes for features to be set on interface only ('interface_metadata') or implementation only ('class_metadata') basis like it is done for classes (this fixes bug#11773).

Revision 65447 - (view) (annotate) - [select for diffs]
Modified Thu Dec 7 23:34:42 2006 UTC (12 years, 10 months ago) by konradm
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 215740 byte(s)
Diff to previous 65438
Improved visualization of agents on attributes in the watch tool.

Revision 65438 - (view) (annotate) - [select for diffs]
Modified Thu Dec 7 17:48:28 2006 UTC (12 years, 10 months ago) by konradm
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 215164 byte(s)
Diff to previous 65185
Agents with open targets on attributes didn't work (test#exec264)

Revision 65185 - (view) (annotate) - [select for diffs]
Modified Wed Nov 22 00:54:06 2006 UTC (12 years, 10 months ago) by patrickr
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 215281 byte(s)
Diff to previous 65165
some changes to make use of the new ID_AS behavior

Revision 65165 - (view) (annotate) - [select for diffs]
Modified Tue Nov 21 01:36:22 2006 UTC (12 years, 10 months ago) by patrickr
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 215109 byte(s)
Diff to previous 65068
made old and new HASH_TABLE compatible
added some catcall detection and prevention features to HASH_TABLE
changed ID_AS not to inherit form STRING but have a name_id which is an id into the names heap
switched compiler from the obsolete HASH_TABLE to the normal HASH_TABLE of base

Revision 65068 - (view) (annotate) - [select for diffs]
Modified Wed Nov 15 13:11:16 2006 UTC (12 years, 11 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 214784 byte(s)
Diff to previous 64654
Changed processing for formal generics to traverse their constraints recursively to cover the case when a formal generic is constrained to another formal generic (this fixes bug#11634, test#term145).

Revision 64654 - (view) (annotate) - [select for diffs]
Modified Mon Oct 30 17:55:48 2006 UTC (12 years, 11 months ago) by patrickr
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 214726 byte(s)
Diff to previous 64549
changed ASSERTION_I to inherit from CONF_ASSERTIONS and always use the factory to create a CONF_ASSERTIONS object so that in the compiler we will get a ASSERTION_I object instead, eliminates creating a ASSERTION_I object in CLASS_I
fixed a bug in the CONF_PRINT_VISITOR that did not print relative external paths correct
removed CLASS_I.name_in_upper as name is never void in the new config system
fixed external_name if there is a renaming specified in the visible clause

Revision 64549 - (view) (annotate) - [select for diffs]
Modified Tue Oct 24 20:34:59 2006 UTC (12 years, 11 months ago) by juliant
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 214744 byte(s)
Diff to previous 64415
fix so that encoded characters with larger value than 8bit are handled properly

Revision 64415 - (view) (annotate) - [select for diffs]
Modified Wed Oct 18 15:23:06 2006 UTC (13 years ago) by patrickr
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 214655 byte(s)
Diff to previous 63657
refactored configuration library into two parts, parser that handles parsing and writing configuration files, compiler that does the compiler specific part (degree 6)
moved some classes around and created some new libraries to be able to use the parser and configuration system as a library in the compiler
cleaned up the ec.ecf

Revision 63657 - (view) (annotate) - [select for diffs]
Modified Mon Sep 18 23:00:29 2006 UTC (13 years, 1 month ago) by konradm
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 214626 byte(s)
Diff to previous 63621
Error message (for VUAR) was wrong when creating an inline agent and providing the wrong amount of actual arguments.

Revision 63621 - (view) (annotate) - [select for diffs]
Modified Sat Sep 16 01:00:02 2006 UTC (13 years, 1 month ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 214568 byte(s)
Diff to previous 63548
Fixed eweasel test#exec257 (corresponding to bug#11237) where incompatible
  basic type comparison should always yield True or False comparison.


Revision 63548 - (view) (annotate) - [select for diffs]
Modified Wed Sep 13 18:49:16 2006 UTC (13 years, 1 month ago) by konradm
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 214054 byte(s)
Diff to previous 63282
Correction for PR #11177. Changed naming convention for inline agents

Revision 63282 - (view) (annotate) - [select for diffs]
Modified Tue Sep 5 15:59:40 2006 UTC (13 years, 1 month ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 214083 byte(s)
Diff to previous 63231
Fixed bug#11179 where an additional breakpoint was generated for check statement where
  we didn't need to since we don't generate a hook there.


Revision 63231 - (view) (annotate) - [select for diffs]
Modified Sat Sep 2 00:15:27 2006 UTC (13 years, 1 month ago) by konradm
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 214140 byte(s)
Diff to previous 63215
Correction for eweasel tests valid185 and valid186.
Compiler crashed on precursor usage in invariants or inline-agents.

Revision 63215 - (view) (annotate) - [select for diffs]
Modified Fri Sep 1 19:03:38 2006 UTC (13 years, 1 month ago) by konradm
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 213834 byte(s)
Diff to previous 63124
Corrections for problem reports: PR #11144, PR #11156, PR #11157, PR #11147, PR #11146

- Breakpoint calculation for loops was wrong.
- Agents on constant attributes didn't work.
- No breakpoints for inline agents of invariants are generated anymore.
- Locals in inline agents of inherited assertions crashed the compiler.


Revision 63124 - (view) (annotate) - [select for diffs]
Modified Wed Aug 30 17:09:20 2006 UTC (13 years, 1 month ago) by konradm
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 213737 byte(s)
Diff to previous 62922
Fixed two problems:
- Compiler gives VPIR error for once inline-agent. (According to report 11131). Eweasel test: valid184
- Execution location for outer agent when inside nested inline agent call is shown correctly (According to report 11132)

Revision 62922 - (view) (annotate) - [select for diffs]
Modified Thu Aug 24 16:54:13 2006 UTC (13 years, 1 month ago) by konradm
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 213713 byte(s)
Diff to previous 62818
Corrected the calculation of the first breakpoint slot index of a feature. Works now even more correct than in 5.6.

Revision 62818 - (view) (annotate) - [select for diffs]
Modified Mon Aug 21 19:36:06 2006 UTC (13 years, 1 month ago) by konradm
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 213403 byte(s)
Diff to previous 62483
Added debugger support for inline-agents.
Improved behavior when stepping trough agent creations and calls.
Optimized ROUTINE by providing a more compact set_rout_disp_final method for finalized code.


Revision 62483 - (view) (annotate) - [select for diffs]
Modified Sun Aug 13 04:49:27 2006 UTC (13 years, 2 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 211552 byte(s)
Diff to previous 62454
Fixing eweasel test#valid181 which would cause `check_type' to fail when you check
  the validity of an inherited type (with formal generic parameter) in a class which
  don't have any. We need to adapt the type to the descandant class before checking the
  type.


Revision 62454 - (view) (annotate) - [select for diffs]
Modified Sat Aug 12 00:15:38 2006 UTC (13 years, 2 months ago) by konradm
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 211337 byte(s)
Diff to previous 62447
Renamed classes VPIR_1 and VPIR_3 to VPIR1 and VPIR2.

Revision 62447 - (view) (annotate) - [select for diffs]
Modified Fri Aug 11 23:18:55 2006 UTC (13 years, 2 months ago) by konradm
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 211339 byte(s)
Diff to previous 61770
- Corrected several problems with inline agents. (Specially when they occur in assertions)
- Added semantic checks for locals and arguments (VPID) of inline agents
- Optimized agents calls for classic eiffel. 
- It is now possible to make agents on named tuple attributes.


Revision 61770 - (view) (annotate) - [select for diffs]
Modified Sat Jul 29 00:19:26 2006 UTC (13 years, 2 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 198759 byte(s)
Diff to previous 61739
Fixed eweasel test#valid180, bug#10817 and bug#10714 where inherited infix routines calls
  where not properly typechecked in descendant class.


Revision 61739 - (view) (annotate) - [select for diffs]
Modified Fri Jul 28 16:58:54 2006 UTC (13 years, 2 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 198606 byte(s)
Diff to previous 61644
Made VJRV warnings only on code for current class, not inherited code.


Revision 61644 - (view) (annotate) - [select for diffs]
Modified Wed Jul 26 13:17:08 2006 UTC (13 years, 2 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 198526 byte(s)
Diff to previous 61619
Corrected processing of features marked as .NET properties with automatically calculated property name (this fixes bug#10756, test#incr261).

Revision 61619 - (view) (annotate) - [select for diffs]
Modified Tue Jul 25 04:45:27 2006 UTC (13 years, 2 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 198573 byte(s)
Diff to previous 61581
Fixed eweasel test#incr259.
Made VWEQ only appears in non-inherited code.


Revision 61581 - (view) (annotate) - [select for diffs]
Modified Mon Jul 24 17:03:46 2006 UTC (13 years, 2 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 198560 byte(s)
Diff to previous 61574
Use new names for basic classes for queries/commands in BASIC_SYSTEM_I.
Updated callers accordingly.


Revision 61574 - (view) (annotate) - [select for diffs]
Modified Mon Jul 24 12:48:46 2006 UTC (13 years, 2 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 198558 byte(s)
Diff to previous 61568
Used reference counterpart of an expanded type to evaluate result type anchored to a reference argument only for code generation and not for type checking (this fixes test#exec229).

Revision 61568 - (view) (annotate) - [select for diffs]
Modified Sat Jul 22 21:20:48 2006 UTC (13 years, 2 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 198334 byte(s)
Diff to previous 61539
Integrated for `konradm': fixed issue when inline agent is defined in a precondition.


Revision 61539 - (view) (annotate) - [select for diffs]
Modified Fri Jul 21 17:04:30 2006 UTC (13 years, 2 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 196707 byte(s)
Diff to previous 61537
Fixed eweasel test#incr207 where custom attributes should not be type checked in classic mode
  since not useful.
Fixed eweasel test#valid179 by making sure that type of arguments of a function are transposed
  using the constraint of a formal generic parameter.


Revision 61537 - (view) (annotate) - [select for diffs]
Modified Fri Jul 21 14:52:22 2006 UTC (13 years, 2 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 196238 byte(s)
Diff to previous 61533
Provided code generation for CHARACTER_32.
Supported reattachment of a result type anchored to an argument of a
reference formal type with an expanded actual type to this expanded type.


Revision 61533 - (view) (annotate) - [select for diffs]
Modified Fri Jul 21 01:25:12 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 195473 byte(s)
Diff to previous 61530
Fixed unused locals.


Revision 61530 - (view) (annotate) - [select for diffs]
Modified Fri Jul 21 01:05:43 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 195500 byte(s)
Diff to previous 61379
Factored out a piece of code in `adapted_type' which might be used somewhere else if
  we decide that test#valid179 should not raise a compilation error.


Revision 61379 - (view) (annotate) - [select for diffs]
Modified Mon Jul 17 17:16:22 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 195025 byte(s)
Diff to previous 61373
Fixed eweasel test#valid178 where creating `create t.a' where t is a tuple type and
  `a' a label of that tuple type would crash the compiler because there are no
  routine IDs.


Revision 61373 - (view) (annotate) - [select for diffs]
Modified Sat Jul 15 17:23:16 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 194874 byte(s)
Diff to previous 61338
Added VJRV warning control in configuration.
Added `is_warning_enabled' in CLASS_C and updated AST_FEATURE_CHECKER_GENERATOR accordingly.


Revision 61338 - (view) (annotate) - [select for diffs]
Modified Fri Jul 14 14:36:13 2006 UTC (13 years, 3 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 194842 byte(s)
Diff to previous 61176
Allowed VJRV errors to be reported (as warnings) in .NET mode, so that there is now no difference from classic mode.

Revision 61176 - (view) (annotate) - [select for diffs]
Modified Tue Jul 11 14:56:36 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 194922 byte(s)
Diff to previous 61113
Fixed a bug in .NET mode as well as in C frozen mode where breakpoints data was not properly
  generated causing debugger to misbehave when stepping into assignment to named tuples.


Revision 61113 - (view) (annotate) - [select for diffs]
Modified Mon Jul 10 12:12:39 2006 UTC (13 years, 3 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 194859 byte(s)
Diff to previous 61022
Changed status of VJRV errors from errors to warnings.

Revision 61022 - (view) (annotate) - [select for diffs]
Modified Thu Jul 6 21:14:04 2006 UTC (13 years, 3 months ago) by konradm
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 194855 byte(s)
Diff to previous 60978
removed bug for dotnet when using an agent that was created as an inline agent in a descendant or ancestor class

Revision 60978 - (view) (annotate) - [select for diffs]
Modified Wed Jul 5 15:22:43 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 194828 byte(s)
Diff to previous 60616
Fixed eweasel test#term141 when the return type of an agent is a like argument whose
  type is open when creating the agent.


Revision 60616 - (view) (annotate) - [select for diffs]
Modified Tue Jun 27 18:02:28 2006 UTC (13 years, 3 months ago) by konradm
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 194400 byte(s)
Diff to previous 60090
- Support for agents on attributes and externals
- Support for inline agents.
- No freeze anymore when creating a new agent.
- Removed bug in Named tuples

Revision 60090 - (view) (annotate) - [select for diffs]
Modified Wed Jun 21 21:12:41 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 190568 byte(s)
Diff to previous 59657
Fixed eweasel test#exec170 as we did not handle properly the case where the Precursor was
  an external routine.


Revision 59657 - (view) (annotate) - [select for diffs]
Modified Mon Jun 12 18:27:16 2006 UTC (13 years, 4 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 190353 byte(s)
Diff to previous 59401
Added `vweq' new warning, as ECMA has dropped this error. We keep it as a warning
  because it might be useful in certain cases.


Revision 59401 - (view) (annotate) - [select for diffs]
Modified Mon Jun 5 15:47:49 2006 UTC (13 years, 4 months ago) by paulb
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 190299 byte(s)
Diff to previous 59300
process_inspect_as now accepts enum values.

Revision 59300 - (view) (annotate) - [select for diffs]
Modified Wed May 31 17:13:11 2006 UTC (13 years, 4 months ago) by tedf
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 190259 byte(s)
Diff to previous 59276
Implemented static call on anchored class and formal type class.

Revision 59276 - (view) (annotate) - [select for diffs]
Modified Tue May 30 18:04:29 2006 UTC (13 years, 4 months ago) by konradm
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 190259 byte(s)
Diff to previous 58890
added support for identifier lists in named tuples, i.e: TUPLE [x1, x2: INTEGER; y1: STRING]

Revision 58890 - (view) (annotate) - [select for diffs]
Modified Thu May 11 00:20:17 2006 UTC (13 years, 5 months ago) by paulb
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 190141 byte(s)
Diff to previous 58669
Fixed `process_assigner_call' to handle generation of byte node for static .NET assigner calls.

Revision 58669 - (view) (annotate) - [select for diffs]
Modified Wed May 3 16:19:30 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 189831 byte(s)
Diff to previous 58628
Fixed a bug in the display of flat short of a static access in the `when' part
  of an inspect clause. We were not setting its routine_ids_set, nor its class_id.


Revision 58628 - (view) (annotate) - [select for diffs]
Modified Tue May 2 00:36:18 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 189817 byte(s)
Diff to previous 58610
Fixed tuple003 which would violate a check violation in `process_access_feat_as'.


Revision 58610 - (view) (annotate) - [select for diffs]
Modified Mon May 1 18:04:21 2006 UTC (13 years, 5 months ago) by patrickr
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 189551 byte(s)
Diff to previous 58567
added possibility to disable/enable warnings globally
refactored warnings so that they are now directly in CONF_OPTION

Revision 58567 - (view) (annotate) - [select for diffs]
Modified Fri Apr 28 20:49:07 2006 UTC (13 years, 5 months ago) by patrickr
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 189554 byte(s)
Diff to previous 58543


Revision 58543 - (view) (annotate) - [select for diffs]
Modified Fri Apr 28 14:57:29 2006 UTC (13 years, 5 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 189508 byte(s)
Diff to previous 58325
Added byte code node for Eiffel attributes and supported associating user-defined names and custom attributes to properties.

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

Revision 58198 - (view) (annotate) - [select for diffs]
Modified Fri Apr 14 00:52:04 2006 UTC (13 years, 6 months ago) by patrickr
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 188667 byte(s)
Diff to previous 58027
fixed a crash during degree 4

Revision 58027 - (view) (annotate) - [select for diffs]
Modified Wed Apr 5 07:08:57 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 188517 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, 6 months ago) by patrickr
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 188507 byte(s)
Diff to previous 57774
New compiler with new configuration system
For now only the batch compiler works


Revision 57774 - (view) (annotate) - [select for diffs]
Modified Sun Mar 26 23:43:01 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 188211 byte(s)
Diff to previous 57637
Updated ROUTINE_CREATION_AS processing to match new parser which will not
  generate `target' if it is the closed `Current' target.


Revision 57637 - (view) (annotate) - [select for diffs]
Modified Thu Mar 23 06:29:30 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 188097 byte(s)
Diff to previous 57418
Started equipping the code for flat degree3 type checking.


Revision 57418 - (view) (annotate) - [select for diffs]
Modified Fri Mar 10 13:24:11 2006 UTC (13 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 187086 byte(s)
Diff to previous 57412
Provided an argument that was not passed by mistake during the previous checkin for type checking of inherited assertions.

Revision 57412 - (view) (annotate) - [select for diffs]
Modified Thu Mar 9 14:03:51 2006 UTC (13 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 187081 byte(s)
Diff to previous 57387
Supported type check of inherited assertions that allows to avoid problems with incremental recompilation of assertions involving redeclarations of functions into attributes (this fixes incremental part of test#exec210).

Revision 57387 - (view) (annotate) - [select for diffs]
Modified Wed Mar 8 23:51:22 2006 UTC (13 years, 7 months ago) by raphaels
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 185957 byte(s)
Diff to previous 57371
Now each instruction is associated with a line pragma. The line pragma is taken from the _AS class and put in the corresponding _B class.

Revision 57371 - (view) (annotate) - [select for diffs]
Modified Wed Mar 8 00:05:46 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 185275 byte(s)
Diff to previous 57367
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 57367 - (view) (annotate) - [select for diffs]
Modified Tue Mar 7 22:52:54 2006 UTC (13 years, 7 months ago) by patrickr
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 185133 byte(s)
Diff to previous 57239
Added type information to ROUTINE_CREATION_AS and fixed feature rename refactoring for agents.


Revision 57239 - (view) (annotate) - [select for diffs]
Modified Thu Mar 2 12:01:17 2006 UTC (13 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 185044 byte(s)
Diff to previous 57199
Added code to type check inherited assertions (but it is not yet enabled).

Revision 57199 - (view) (annotate) - [select for diffs]
Modified Tue Feb 28 05:17:10 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 182202 byte(s)
Diff to previous 57180
For a tuple access, there should be no `last_routine_id_set' since there
  is no real feature.


Revision 57180 - (view) (annotate) - [select for diffs]
Modified Mon Feb 27 19:47:33 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 182169 byte(s)
Diff to previous 57173
Now stores type of manifest array in ARRAY_AS so that its type can be
  used later by any AST processing tools.


Revision 57173 - (view) (annotate) - [select for diffs]
Modified Mon Feb 27 05:28:09 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 182133 byte(s)
Diff to previous 57151
Implementation of labeled tuples with a limitation which is that the identifier
  list is reduced to only one element, as it is causing the grammar to be too
  difficult. But the current implementation is fully equipped to handle multiple
  entries as soon as the parser is fixed.


Revision 57151 - (view) (annotate) - [select for diffs]
Modified Fri Feb 24 17:31:44 2006 UTC (13 years, 7 months ago) by patrickr
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 179765 byte(s)
Diff to previous 57144
Added type information to ADDRESS_AS and fixed feature renaming for address calls.


Revision 57144 - (view) (annotate) - [select for diffs]
Modified Thu Feb 23 22:35:11 2006 UTC (13 years, 7 months ago) by patrickr
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 179589 byte(s)
Diff to previous 57130
Added type information to BRACKET_AS, UNARY_AS and BIN_EQ_AS.


Revision 57130 - (view) (annotate) - [select for diffs]
Modified Wed Feb 22 22:57:14 2006 UTC (13 years, 7 months ago) by patrickr
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 178969 byte(s)
Diff to previous 57126
Added type information on STATIC_ACCESS_AS.


Revision 57126 - (view) (annotate) - [select for diffs]
Modified Wed Feb 22 08:22:25 2006 UTC (13 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 178866 byte(s)
Diff to previous 57123
Changed setting of an assigner call flag when processing a nested feature call so that the flag is used even when generation of byte nodes is not requested as it happens in incremental recompilation (this fixes test#incr251).

Revision 57123 - (view) (annotate) - [select for diffs]
Modified Wed Feb 22 01:40:26 2006 UTC (13 years, 7 months ago) by patrickr
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 178868 byte(s)
Diff to previous 57111
Added type information for BINARY_AS.


Revision 57111 - (view) (annotate) - [select for diffs]
Modified Tue Feb 21 18:10:55 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 178745 byte(s)
Diff to previous 56893
Fixed bug#10182 where creators format would show entries where it should not.


Revision 56893 - (view) (annotate) - [select for diffs]
Modified Fri Feb 3 02:41:15 2006 UTC (13 years, 8 months ago) by patrickr
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 178527 byte(s)
Diff to previous 56808
Fixed a bug, where the routine_id_set was computed wrong, because last_routine_id_set was overwritten during computation of parameter calls.



Revision 56808 - (view) (annotate) - [select for diffs]
Modified Mon Jan 30 21:24:00 2006 UTC (13 years, 8 months ago) by jasonw
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 178528 byte(s)
Diff to previous 56781
Changed needed EIFFEL_LIST [AST_EIFFEL] to its own type to facilitate roundtrip usage.


Revision 56781 - (view) (annotate) - [select for diffs]
Modified Fri Jan 27 16:27:42 2006 UTC (13 years, 8 months ago) by patrickr
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 176799 byte(s)
Diff to previous 56736
-add type information to the ast during degree 3
-make a type check of all features, instead of only the changed ones, if a class has been parsed again (need because we have a new ast and we need to readd the type informations)
-changed parser used during degree 5 to light roundtrip parser (roundtrip parser without matchlist generation)
-refactoring tool
-refactored comment code to use the available information from the roundtrip ast
-added a server for matchlists, that generates matchlists on demand, using the fast scanner



Revision 56736 - (view) (annotate) - [select for diffs]
Modified Thu Jan 26 13:12:57 2006 UTC (13 years, 8 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 174407 byte(s)
Diff to previous 56730
Supported a query to distinguish an assignment instruction used together with a creation expression to model a creation instruction.

Revision 56730 - (view) (annotate) - [select for diffs]
Modified Thu Jan 26 01:39:21 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 174295 byte(s)
Diff to previous 56718
Performed a minor refactoring of parser classes so that it is easier to compiler/precompile
  the Src/common/parser cluster standalone.
  Basically I'moved classes around, removed classes that were duplicated but actually
  not needed from the Src/common/parser directory. It mostly affected the parser of externals
  and the error classes that are needed by Src/common.


Revision 56718 - (view) (annotate) - [select for diffs]
Modified Wed Jan 25 18:51:46 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 174186 byte(s)
Diff to previous 56646
Removed processing of `process_used_list_as' since it was a class for parsing externals,
  not Eiffel code.


Revision 56646 - (view) (annotate) - [select for diffs]
Modified Fri Jan 20 20:28:48 2006 UTC (13 years, 8 months ago) by jasonw
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 174276 byte(s)
Diff to previous 56535
Added `first_token' and `last_token'.

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


Revision 56472 - (view) (annotate) - [select for diffs]
Modified Mon Jan 9 23:55:50 2006 UTC (13 years, 9 months ago) by jasonw
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 172831 byte(s)
Diff to previous 56182
1.Added complete_start_location and complete_end_location to give the pricise position of an AST node. And changed start_location/end_location to call the above 2 features.
2. Added text modification facility into AST nodes.


Revision 56182 - (view) (annotate) - [select for diffs]
Modified Thu Dec 15 19:08:23 2005 UTC (13 years, 10 months ago) by jasonw
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 172887 byte(s)
Diff to previous 56014
Roundtrip facility added.

Revision 56014 - (view) (annotate) - [select for diffs]
Modified Mon Dec 5 18:12:43 2005 UTC (13 years, 10 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 171347 byte(s)
Diff to previous 55966
Allowed for a routine creation type to be or depend on "like Current" so
that the actual type is evaluated at code generation time.


Revision 55966 - (view) (annotate) - [select for diffs]
Modified Thu Dec 1 23:57:35 2005 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 171459 byte(s)
Diff to previous 55813
Fixed eweasel test fixed129 where compiler would crash if you had a VWEB error
  in an elsif expression and that you had a compound which has not real instructions/expressions.


Revision 55813 - (view) (annotate) - [select for diffs]
Modified Mon Nov 21 14:53:35 2005 UTC (13 years, 10 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 171509 byte(s)
Diff to previous 55800
Changed type of a class parent to be of type LIKE_CURRENT because any
inherited feature logically belongs to the corresponding "like Current" type
and its real target type is determined at code generation stage when the
code can be produced either for reference or expanded class type.


Revision 55800 - (view) (annotate) - [select for diffs]
Modified Fri Nov 18 09:05:19 2005 UTC (13 years, 11 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 171381 byte(s)
Diff to previous 55640
Avoided creation of a new object of LIKE_CURRENT type when processing
an address of Current because now the current type is already
LIKE_CURRENT.


Revision 55640 - (view) (annotate) - [select for diffs]
Modified Fri Nov 4 14:20:13 2005 UTC (13 years, 11 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 171421 byte(s)
Diff to previous 55226
Fixed bug #5641 that caused a compiler crash when list of inspect intervals
contains an unknown constant. The bug was caused by an incorrect
assumption that current implementation of ARRAY can shrink array.


Revision 55226 - (view) (annotate) - [select for diffs]
Modified Wed Oct 19 16:01:25 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 171397 byte(s)
Diff to previous 53814
Removed non-used `current_locals' attribute.
Rewrote .NET custom attribute type checking as before we were allowing too much
  without properly supporting it (i.e. code generation would fail).
  1 - The main change is that now we introduced `is_checking_cas' which when active
  will not perform any byte code transformation for conversion, we will preserve
  the original byte code. The new class CUSTOM_ATTRIBUTE_GENERATOR handles
  conversion properly at generation time.

  2 - The other major change is the way we process manifest array so that
  we give them the proper type for CA (i.e. NATIVE_ARRAY).


Revision 53814 - (view) (annotate) - [select for diffs]
Modified Wed Jul 27 05:25:20 2005 UTC (14 years, 2 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 167332 byte(s)
Diff to previous 53785
Previous fix fixed indeed final031, but it made incr139 failed. So now in the
  case of a Precursor call we record both a dependance to ourself and to the
  precursor version.


Revision 53785 - (view) (annotate) - [select for diffs]
Modified Tue Jul 26 02:01:45 2005 UTC (14 years, 2 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 167293 byte(s)
Diff to previous 52899
Fixed bug eweasel final031 where if in a routine `f' using Precursor, `f'
  is called recursively before the call to `Precursor', then we would register
  the incorrect dependance to ourself, which will also generate in finalized
  mode a call to yourself instead of Precursor.


Revision 52899 - (view) (annotate) - [select for diffs]
Modified Fri Jul 1 20:42:03 2005 UTC (14 years, 3 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 167122 byte(s)
Diff to previous 52300
Fixed eweasel test valid169 where compiler would generate a VGCC1 error when
  it should not.


Revision 52300 - (view) (annotate) - [select for diffs]
Modified Fri Jun 17 12:32:29 2005 UTC (14 years, 4 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 167001 byte(s)
Diff to previous 52221
Supported all forms of assigner call.
Fixed incorrect code generation for bracket expression that did not take into
account code generated for its target.


Revision 52221 - (view) (annotate) - [select for diffs]
Modified Thu Jun 16 01:35:57 2005 UTC (14 years, 4 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 163435 byte(s)
Diff to previous 52079
Fixed eweasel test valid167 where boolean expression whose type was a `like bool_feature'
  were rejected by the compiler for `if', `elsif', `loop' and `assertions'.
Fixed a bug where if you had a wrong expression in a `elsif' statement the compiler
  would do a call on Void target on `l_elsif' because it is not created when
  you have an incorrect expression.


Revision 52079 - (view) (annotate) - [select for diffs]
Modified Mon Jun 13 21:29:57 2005 UTC (14 years, 4 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 163309 byte(s)
Diff to previous 52070
More or less fixed exec153. In other words when no match is found in a manifest array
  type we should say there is an error and ensures that the common type is ANY.
  So in exec153, we would get ARRAY [ANY] instead of more precise type ARRAY [ARRAY [ANY]]
  which we could potentially infer if we were trying harder.
  Anyway this can be obtained by ensuring the target is ARRAY [ARRAY [ANY]]
  so this is not really a limitation. Without a context it is hard to find the
  right type.


Revision 52070 - (view) (annotate) - [select for diffs]
Modified Mon Jun 13 17:17:39 2005 UTC (14 years, 4 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 163282 byte(s)
Diff to previous 51978
Supported assigner call instruction.
Added validity checks for assigner call.
Moved compatibility checks to a separate procedure so that it can be used
for both assignment and assigner call instructions (it could also be used for
argument type checks provided the checks take into account open
arguments of agents).


Revision 51978 - (view) (annotate) - [select for diffs]
Modified Thu Jun 9 23:42:53 2005 UTC (14 years, 4 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 159176 byte(s)
Diff to previous 51947
Fixed eweasel test exec204 where old expressions that should not be checked
  where actually being checked when code was melted when you manipulate
  a `False implies right_expression_containing_old_expression'.


Revision 51947 - (view) (annotate) - [select for diffs]
Modified Thu Jun 9 08:08:50 2005 UTC (14 years, 4 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 158699 byte(s)
Diff to previous 51519
Replaced a hard-coded bracket feature alias name with a constant attribute.


Revision 51519 - (view) (annotate) - [select for diffs]
Modified Tue May 31 12:50:35 2005 UTC (14 years, 4 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 158639 byte(s)
Diff to previous 51487
Supported bracket expressions.


Revision 51487 - (view) (annotate) - [select for diffs]
Modified Fri May 27 17:58:32 2005 UTC (14 years, 4 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 157006 byte(s)
Diff to previous 50945
Used alias name instead of feature name for operator expressions.


Revision 50945 - (view) (annotate) - [select for diffs]
Modified Wed May 11 05:41:29 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 156994 byte(s)
Diff to previous 50819
Updated to new type of `constant_type' of REAL_AS which is now a TYPE_AS instead of TYPE_A.


Revision 50819 - (view) (annotate) - [select for diffs]
Modified Fri May 6 22:13:13 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 156982 byte(s)
Diff to previous 50613
Fixed creation of REAL_CONST_B instance to use `last_type' so that the generated
  constant will be of the right type.


Revision 50613 - (view) (annotate) - [select for diffs]
Modified Mon May 2 17:04:04 2005 UTC (14 years, 5 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 156971 byte(s)
Diff to previous 50375
Supported new syntax for feature alias (operator) names.


Revision 50375 - (view) (annotate) - [select for diffs]
Modified Sat Apr 23 15:16:22 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 156869 byte(s)
Diff to previous 50367
Fixed issue with manifest arrays embedded in manifest arrays or manifest tuples
  (fixing eweasel test valid163)
Fixed issue where if you create an entity which is a `like xx' where xx is a
  formal we would not detect the case of creation on formal (fixing eweasel
  test valid165)
Fixed issue where type of agent was incorrect resolved when target is a `like xx'
  (fixing eweasel test valid164)


Revision 50367 - (view) (annotate) - [select for diffs]
Modified Fri Apr 22 20:57:53 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 154259 byte(s)
Diff to previous 50366
Fixed bug where finding which routine created an attribute did not work after
  the refactoring. To make it clearer, we renamed the flag `is_in_creation_call'
  by `is_target_of_creation_instruction' and it is set just before type checking
  the target of a creation instruction, not after each call to the creation routine
  as it was done before.


Revision 50366 - (view) (annotate) - [select for diffs]
Modified Fri Apr 22 20:50:20 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 154151 byte(s)
Diff to previous 50290
Fixed eweasel bug incr243 where we forgot to check for `is_byte_node_enabled'
  when handling conversion in manifest arrays.


Revision 50290 - (view) (annotate) - [select for diffs]
Modified Thu Apr 21 17:59:44 2005 UTC (14 years, 5 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 154100 byte(s)
Diff to previous 50249
Simplified processing of inspect intervals due to simplification of
INSPECT_CONTROL interface.
Removed features used to find and report errors in inspect values, because
this is now done by INSPECT_CONTROL.


Revision 50249 - (view) (annotate) - [select for diffs]
Modified Wed Apr 20 21:50:08 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 156095 byte(s)
Diff to previous 50232
Fixed bug where not byte_node was generated in case of an empty check clause.
  It manifested in eweasel tests fixed080 in .NET mode and thus fixes it.


Revision 50232 - (view) (annotate) - [select for diffs]
Modified Wed Apr 20 15:50:31 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 155962 byte(s)
Diff to previous 50217
Added `expression_type_check_and_code'.
Moved `invariant_type_check_and_code' and `custom_attributes_type_check_and_code'.


Revision 50217 - (view) (annotate) - [select for diffs]
Modified Wed Apr 20 00:11:25 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 155173 byte(s)
Diff to previous 50200
Fixed a bug when checking validity of an overloaded creation procedure on .NET. Now
  `process_call' set `last_feature_name' with the disambiguated name, and
  `process_abstract_creation' use it for the validity checking.
Fixed a bug in `applicable_overloaded_features' where `count' was incremented
  for each routine rather than once at the beginning.


Revision 50200 - (view) (annotate) - [select for diffs]
Modified Tue Apr 19 15:42:08 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 154976 byte(s)
Diff to previous 50198
Fixed eweasel test valid159 where type of inspect expression was not fully
  resolved when it was an anchor for example.


Revision 50198 - (view) (annotate) - [select for diffs]
Modified Tue Apr 19 06:42:36 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 154833 byte(s)
Diff to previous 50145
Fixed eweasel tests term135.


Revision 50145 - (view) (annotate) - [select for diffs]
Added Tue Apr 19 03:46:48 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/AST/visitor/ast_feature_checker_generator.e
File length: 154802 byte(s)
New visitors used by compiler so that no semantic checking is done within the
 _AS nodes.


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