/[eiffelstudio]/branches/eth/eve/Src/C
ViewVC logotype

Log of /branches/eth/eve/Src/C

View Directory Listing Directory Listing


Sticky Revision:

Revision 90398 - Directory Listing
Modified Fri Jan 4 09:58:58 2013 UTC (6 years, 11 months ago) by jasonw
<<Merged from trunk#90397.>>

Revision 90189 - Directory Listing
Modified Fri Dec 14 08:06:02 2012 UTC (6 years, 11 months ago) by jasonw
<<Merged from trunk#90188.>>

Revision 90122 - Directory Listing
Modified Fri Dec 7 08:28:50 2012 UTC (6 years, 11 months ago) by jasonw
<<Merged from trunk#90120.>>

Revision 90071 - Directory Listing
Modified Sat Dec 1 12:50:45 2012 UTC (7 years ago) by jasonw
<<Merged from trunk#90020.>>

Revision 89960 - Directory Listing
Modified Fri Nov 23 07:04:00 2012 UTC (7 years ago) by jasonw
<<Merged from trunk#89959.>>

Revision 89804 - Directory Listing
Modified Fri Nov 2 09:14:04 2012 UTC (7 years, 1 month ago) by jasonw
<<Merged from trunk#89803.>>

Revision 89579 - Directory Listing
Modified Fri Oct 12 06:28:37 2012 UTC (7 years, 1 month ago) by jasonw
<<Merged from trunk#89578.>>

Revision 89535 - Directory Listing
Modified Fri Oct 5 06:46:18 2012 UTC (7 years, 2 months ago) by jasonw
<<Merged from trunk#89534.>>

Revision 89470 - Directory Listing
Modified Fri Sep 28 12:39:30 2012 UTC (7 years, 2 months ago) by jasonw
<<Merged from trunk#89469.>>

Revision 89347 - Directory Listing
Modified Fri Aug 10 15:09:25 2012 UTC (7 years, 3 months ago) by jasonw
<<Merged from trunk#89346.>>

Revision 89289 - Directory Listing
Modified Fri Aug 3 08:16:19 2012 UTC (7 years, 4 months ago) by jasonw
<<Merged from trunk#89288.>>

Revision 89221 - Directory Listing
Modified Fri Jul 27 13:54:06 2012 UTC (7 years, 4 months ago) by jasonw
<<Merged from trunk#89220.>>


Revision 89156 - Directory Listing
Modified Fri Jul 20 09:15:13 2012 UTC (7 years, 4 months ago) by jasonw
<<Merged from trunk#89155.>>

Revision 89123 - Directory Listing
Modified Fri Jul 13 09:43:54 2012 UTC (7 years, 4 months ago) by jasonw
<<Merged from trunk#89122.>>

Revision 89082 - Directory Listing
Modified Sat Jul 7 12:23:44 2012 UTC (7 years, 5 months ago) by jasonw
<<Merged from trunk#89081.>>

Revision 88968 - Directory Listing
Modified Fri Jun 22 10:24:51 2012 UTC (7 years, 5 months ago) by jasonw
<<Merged from trunk#88964.>>


Revision 88881 - Directory Listing
Modified Fri Jun 15 12:21:45 2012 UTC (7 years, 5 months ago) by jasonw
<<Merged from trunk#88880.>>

Revision 88757 - Directory Listing
Modified Fri May 18 15:41:12 2012 UTC (7 years, 6 months ago) by jasonw
<<Merged from trunk#88756.>>


Revision 88695 - Directory Listing
Modified Fri May 4 09:59:08 2012 UTC (7 years, 7 months ago) by jasonw
<<Merged from trunk#88694.>>

Revision 88634 - Directory Listing
Modified Fri Apr 20 14:53:03 2012 UTC (7 years, 7 months ago) by jasonw
<<Merged from trunk#88631.>>


Revision 88574 - Directory Listing
Modified Fri Apr 13 08:45:15 2012 UTC (7 years, 7 months ago) by jasonw
<<Merged from trunk#88573.>>

Revision 88450 - Directory Listing
Modified Fri Mar 23 11:38:32 2012 UTC (7 years, 8 months ago) by jasonw
<<Merged from trunk#88449.>>

Revision 88379 - Directory Listing
Modified Fri Mar 9 09:40:16 2012 UTC (7 years, 8 months ago) by jasonw
<<Merged from trunk#88377.>>

Revision 88292 - Directory Listing
Modified Fri Feb 10 08:55:50 2012 UTC (7 years, 9 months ago) by jasonw
<<Merged from trunk#88291.>>

Revision 88212 - Directory Listing
Modified Fri Jan 20 13:30:20 2012 UTC (7 years, 10 months ago) by jasonw
<<Merged from trunk#88211.>>

Revision 88173 - Directory Listing
Modified Fri Jan 13 02:09:08 2012 UTC (7 years, 10 months ago) by jasonw
<<Merged from trunk#88172.>>

Revision 88155 - Directory Listing
Modified Fri Dec 30 20:29:53 2011 UTC (7 years, 11 months ago) by jasonw
<<Merged from trunk#88152.>>

Revision 88121 - Directory Listing
Modified Fri Dec 16 14:42:24 2011 UTC (7 years, 11 months ago) by jasonw
<<Merged from trunk#88120.>>

Revision 88099 - Directory Listing
Modified Fri Dec 2 11:05:42 2011 UTC (8 years ago) by jasonw
<<Merged from trunk#88098.>>

Revision 88026 - Directory Listing
Modified Fri Nov 25 12:11:03 2011 UTC (8 years ago) by jasonw
<<Merged from trunk#88024.>>

Revision 87847 - Directory Listing
Modified Fri Nov 18 09:52:15 2011 UTC (8 years ago) by jasonw
<<Merged from trunk#87846.>>

Revision 87721 - Directory Listing
Modified Fri Nov 4 09:32:23 2011 UTC (8 years, 1 month ago) by jasonw
<<Merged from trunk#87720.>>

Revision 87470 - Directory Listing
Modified Fri Oct 14 11:57:27 2011 UTC (8 years, 1 month ago) by jasonw
<<Merged from trunk#87469.>>

Revision 87423 - Directory Listing
Modified Fri Oct 7 08:59:53 2011 UTC (8 years, 2 months ago) by jasonw
<<Merged from trunk#87422.>>

Revision 87357 - Directory Listing
Modified Wed Sep 28 22:18:32 2011 UTC (8 years, 2 months ago) by jasonw
<<Merged from trunk#87356.>>

Revision 87305 - Directory Listing
Modified Fri Sep 23 08:21:01 2011 UTC (8 years, 2 months ago) by jasonw
<<Merged from trunk#87304.>>

Revision 87220 - Directory Listing
Modified Thu Sep 15 08:09:35 2011 UTC (8 years, 2 months ago) by jasonw
<<Merged from trunk#87219.>>

Revision 87104 - Directory Listing
Modified Fri Aug 26 08:16:29 2011 UTC (8 years, 3 months ago) by jasonw
<<Merged from trunk#87102.>>

Revision 87069 - Directory Listing
Modified Fri Aug 19 18:04:34 2011 UTC (8 years, 3 months ago) by jasonw
<<Merged from trunk#87065.>>

Revision 86913 - Directory Listing
Modified Fri Jul 29 09:28:44 2011 UTC (8 years, 4 months ago) by jasonw
<<Merged from trunk#86912.>>

Revision 86893 - Directory Listing
Modified Fri Jul 22 10:14:02 2011 UTC (8 years, 4 months ago) by jasonw
<<Merged from trunk#86892.>>

Revision 86810 - Directory Listing
Modified Thu Jun 30 15:33:23 2011 UTC (8 years, 5 months ago) by jasonw
Added object identifier support.

Revision 86751 - Directory Listing
Modified Fri Jun 17 09:30:42 2011 UTC (8 years, 5 months ago) by jasonw
<<Merged from trunk#86750.>>

Revision 86696 - Directory Listing
Modified Fri Jun 10 11:12:57 2011 UTC (8 years, 5 months ago) by jasonw
<<Merged from trunk#86694.>>

Revision 86562 - Directory Listing
Modified Fri May 27 08:47:29 2011 UTC (8 years, 6 months ago) by jasonw
<<Merged from trunk#86561.>>

Revision 86498 - Directory Listing
Modified Fri May 20 08:15:46 2011 UTC (8 years, 6 months ago) by jasonw
<<Merged from trunk#86497.>>

Revision 86444 - Directory Listing
Modified Fri May 13 12:30:41 2011 UTC (8 years, 6 months ago) by jasonw
<<Merged from trunk#86443.>>

Revision 86378 - Directory Listing
Modified Fri May 6 11:10:51 2011 UTC (8 years, 7 months ago) by jasonw
<<Merged from trunk#86377.>>

Revision 86354 - Directory Listing
Modified Fri Apr 29 18:23:18 2011 UTC (8 years, 7 months ago) by jasonw
<<Merged from trunk#86353.>>

Revision 86265 - Directory Listing
Modified Fri Apr 15 12:40:05 2011 UTC (8 years, 7 months ago) by jasonw
<<Merged from trunk#86264.>>

Revision 86163 - Directory Listing
Modified Fri Apr 8 08:17:40 2011 UTC (8 years, 8 months ago) by jasonw
<<Merged from trunk#86162.>>

Revision 86099 - Directory Listing
Modified Fri Apr 1 08:07:39 2011 UTC (8 years, 8 months ago) by jasonw
<<Merged from trunk#86097.>>

Revision 86000 - Directory Listing
Modified Fri Mar 25 12:39:38 2011 UTC (8 years, 8 months ago) by jasonw
<<Merged from trunk#85999.>>

Revision 85914 - Directory Listing
Modified Fri Mar 18 10:15:05 2011 UTC (8 years, 8 months ago) by jasonw
<<Merged from trunk#85913.>>

Revision 85847 - Directory Listing
Modified Fri Mar 11 10:18:42 2011 UTC (8 years, 8 months ago) by jasonw
<<Merged from trunk#85845.>>

Revision 85792 - Directory Listing
Modified Fri Mar 4 13:51:36 2011 UTC (8 years, 9 months ago) by jasonw
<<Merged from trunk#85790.>>

Revision 85720 - Directory Listing
Modified Fri Feb 25 11:20:29 2011 UTC (8 years, 9 months ago) by jasonw
<<Merged from trunk#85719.>>

Revision 85646 - Directory Listing
Modified Fri Feb 18 11:55:44 2011 UTC (8 years, 9 months ago) by jasonw
<<Merged from trunk#85645.>>

Revision 85584 - Directory Listing
Modified Fri Feb 11 21:23:26 2011 UTC (8 years, 9 months ago) by jasonw
<<Merged from trunk#85576.>>

Revision 85524 - Directory Listing
Modified Fri Feb 4 07:23:27 2011 UTC (8 years, 10 months ago) by jasonw
<<Merged from trunk#85521.>>

Revision 85496 - Directory Listing
Modified Fri Jan 28 14:31:42 2011 UTC (8 years, 10 months ago) by jasonw
<<Merged from trunk#85495.>>

Revision 85421 - Directory Listing
Modified Fri Jan 21 10:01:27 2011 UTC (8 years, 10 months ago) by jasonw
<<Merged from trunk#85420.>>

Revision 85362 - Directory Listing
Modified Sat Jan 15 14:00:47 2011 UTC (8 years, 10 months ago) by jasonw
<<Merged from trunk#85361.>>

Revision 85293 - Directory Listing
Modified Fri Jan 7 09:29:10 2011 UTC (8 years, 11 months ago) by jasonw
<<Merged from trunk#85292.>>

Revision 85186 - Directory Listing
Modified Fri Dec 17 09:24:14 2010 UTC (8 years, 11 months ago) by jasonw
<<Merged from trunk#85185.>>

Revision 85117 - Directory Listing
Modified Fri Dec 10 16:29:10 2010 UTC (8 years, 11 months ago) by jasonw
<<Merged from trunk#85114.>>

Revision 85044 - Directory Listing
Modified Fri Dec 3 12:03:12 2010 UTC (9 years ago) by jasonw
<<Merged from trunk#85043.>>

Revision 84960 - Directory Listing
Modified Fri Nov 19 13:26:05 2010 UTC (9 years ago) by jasonw
<<Merged from trunk#84959.>>

Revision 84906 - Directory Listing
Modified Fri Nov 12 12:38:36 2010 UTC (9 years ago) by jasonw
<<Merged from trunk#84905.>>

Revision 84836 - Directory Listing
Modified Fri Nov 5 12:16:32 2010 UTC (9 years, 1 month ago) by jasonw
<<Merged from trunk#84828.>>

Revision 84757 - Directory Listing
Modified Fri Oct 29 18:56:40 2010 UTC (9 years, 1 month ago) by jasonw
<<Merged from trunk#84753.>>

Revision 84470 - Directory Listing
Modified Fri Oct 1 14:01:07 2010 UTC (9 years, 2 months ago) by jasonw
<<Merged from trunk#84468.>>


Revision 84363 - Directory Listing
Modified Fri Sep 3 09:37:49 2010 UTC (9 years, 3 months ago) by jasonw
<<Merged from trunk#84362.>>

Revision 84301 - Directory Listing
Modified Fri Aug 27 09:17:18 2010 UTC (9 years, 3 months ago) by jasonw
<<Merged from trunk#84299.>>

Revision 84268 - Directory Listing
Modified Tue Aug 24 14:02:11 2010 UTC (9 years, 3 months ago) by jasonw
<<Merged from trunk#84267.>>

Revision 84126 - Directory Listing
Modified Fri Aug 6 10:02:37 2010 UTC (9 years, 4 months ago) by jasonw
<<Merged from trunk#84124.>>

Revision 84016 - Directory Listing
Modified Mon Jul 26 09:16:52 2010 UTC (9 years, 4 months ago) by wests
<<Merged from trunk#84001.>>

Revision 83928 - Directory Listing
Modified Fri Jul 16 15:21:01 2010 UTC (9 years, 4 months ago) by mpei
<<Merged from trunk#83927>>

Revision 83826 - Directory Listing
Modified Wed Jul 7 11:33:55 2010 UTC (9 years, 5 months ago) by mpei
<<Merged from trunk#83825>>

Revision 83740 - Directory Listing
Modified Tue Jun 29 10:47:08 2010 UTC (9 years, 5 months ago) by julian
<<Merged from trunk#83736.>>

Revision 83702 - Directory Listing
Modified Fri Jun 25 13:00:44 2010 UTC (9 years, 5 months ago) by julian
<<Merged from trunk#83700.>>

Revision 83594 - Directory Listing
Modified Thu Jun 17 09:23:33 2010 UTC (9 years, 5 months ago) by julian
<<Merged from trunk#83593.>>

Revision 83445 - Directory Listing
Modified Sat Jun 5 15:29:40 2010 UTC (9 years, 6 months ago) by jasonw
<<Merged from trunk@83442.>>

Revision 83441 - Directory Listing
Modified Sat Jun 5 13:52:53 2010 UTC (9 years, 6 months ago) by jasonw
Renamed branch eve3 to eve. The eve branch serves as the new branch for the EVE project.

Revision 83331 - Directory Listing
Modified Wed May 26 18:49:35 2010 UTC (9 years, 6 months ago) by jasonw
Original Path: branches/eth/eve3/Src/C
<<Breanched from trunk@83330>> Created a branch to upgrade Eiffel Transform library to trunk.

Revision 83329 - Directory Listing
Modified Wed May 26 18:25:00 2010 UTC (9 years, 6 months ago) by manus
Original Path: trunk/Src/C
Switched to 6.7 release.


Revision 83264 - Directory Listing
Modified Sat May 22 23:16:06 2010 UTC (9 years, 6 months ago) by manus
Original Path: trunk/Src/C
Slighly changed the storable format in compatible mode. In that mode, we will not support the versioning and thus we will use the format prior to INDEPENDENT_STORE_6_4 and GENERAL_STORE_6_4 (as it was done in version 6.5 and 6.4). As a consequence in reading, the STORE_OLD_SPECIAL_SEMANTIC property flag is not actively used although still set.


Revision 83260 - Directory Listing
Modified Fri May 21 18:44:33 2010 UTC (9 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed a bug where storing and then retrieving a storable with some SPECIALs in compatible mode would simply not work. The reason was that we were writting some data (only needed for experimental mode) in compatible mode, but reading was not reading it, thus messing up the retrieval.


Revision 83251 - Directory Listing
Modified Thu May 20 22:15:40 2010 UTC (9 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed a mismatch between the actual bytecode we generate for creating TYPE expression and the reader which we forgot to update.


Revision 83224 - Directory Listing
Modified Tue May 18 21:55:32 2010 UTC (9 years, 6 months ago) by manus
Original Path: trunk/Src/C
Use `_asm' instead of `__asm' since it is not working in VS2008 and later.
Fixed C compiler command line warning and adapted them to VS 2005.


Revision 83213 - Directory Listing
Modified Tue May 18 06:26:47 2010 UTC (9 years, 6 months ago) by jfiat
Original Path: trunk/Src/C
Fixed bug#16551: File_tell does not check ftell return value for error

Revision 83087 - Directory Listing
Modified Wed May 5 12:33:41 2010 UTC (9 years, 7 months ago) by alexk
Original Path: trunk/Src/C
Fixed bug#16626 by removing assignment of an original value to `tagval' on exception in `dynamic_eval' since otherwise the interpreter does not get into the correct state when this function is called (e.g., as a result of an agent call) and exception is triggered (see test#incr348).

Revision 82958 - Directory Listing
Modified Tue Apr 27 13:59:04 2010 UTC (9 years, 7 months ago) by alexk
Original Path: trunk/Src/C
Added new features and macros to calculate dynamic type of feature based on
the given dynamic type (rather than on the given object).
Added new byte codes to support creation of qualified anchored types.
Supported processing of new byte codes by the interpreter.
Supported new byte codes for qualified anchored types in byte dump utility.


Revision 82874 - Directory Listing
Modified Mon Apr 19 23:04:17 2010 UTC (9 years, 7 months ago) by manus
Original Path: trunk/Src/C
Added missing definition for obsolete EIF_CHARACTER_FUNCTION and eif_character_function.


Revision 82808 - Directory Listing
Modified Mon Apr 12 19:08:35 2010 UTC (9 years, 7 months ago) by manus
Original Path: trunk/Src/C
Use additional level of parenthesis to avoid warnings from C compilers.


Revision 82803 - Directory Listing
Modified Mon Apr 12 15:57:46 2010 UTC (9 years, 7 months ago) by jfiat
Original Path: trunk/Src/C
- Compiler: implementation for once per object (classic and dotnet)
- Debugger support for once per object (classic and dotnet)
- Minor refactorying related to once (mainly with expression evaluation in debugger)
- Added is_hidden for FEATURE_I with the counterpart on the runtime (minor change for IS_TRANSIENT...)

Revision 82778 - Directory Listing
Modified Fri Apr 9 04:22:12 2010 UTC (9 years, 7 months ago) by manus
Original Path: trunk/Src/C
Fixed a potential issue with `starting_working_directory' that could be accessed after being freed in `garcol.c'.


Revision 82772 - Directory Listing
Modified Thu Apr 8 18:03:38 2010 UTC (9 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#thread015 where `join_with_timeout' from the THREAD class which would never timed out if the child thread never exited.


Revision 82767 - Directory Listing
Modified Thu Apr 8 04:45:50 2010 UTC (9 years, 8 months ago) by manus
Original Path: trunk/Src/C
Migrated SK_CHAR and SK_WCHAR to SK_CHAR8 and SK_CHAR32 for consistency. Updated the Eiffel code.
Updated the runtime to use EIF_CHARACTER_8 and EIF_CHARACTER_32 in place of EIF_CHARACTER and EIF_WIDE_CHAR.


Revision 82765 - Directory Listing
Modified Wed Apr 7 06:30:25 2010 UTC (9 years, 8 months ago) by jfiat
Original Path: trunk/Src/C
fixed typo

Revision 82752 - Directory Listing
Modified Fri Apr 2 15:28:24 2010 UTC (9 years, 8 months ago) by manus
Original Path: trunk/Src/C
Started to use the C_CONST class instead of manifest strings to generate the C code.


Revision 82743 - Directory Listing
Modified Fri Apr 2 03:54:47 2010 UTC (9 years, 8 months ago) by manus
Original Path: trunk/Src/C
Added EIF_CHARACTER_8 and EIF_CHARACTER_32 as synonyms of EIF_CHARACTER and EIF_WIDE_CHAR.


Revision 82731 - Directory Listing
Modified Wed Mar 31 20:43:06 2010 UTC (9 years, 8 months ago) by manus
Original Path: trunk/Src/C
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 82730 - Directory Listing
Modified Wed Mar 31 20:41:16 2010 UTC (9 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed warning by converting a int into a EIF_BOOLEAN.


Revision 82702 - Directory Listing
Modified Wed Mar 31 07:13:34 2010 UTC (9 years, 8 months ago) by jfiat
Original Path: trunk/Src/C
Added get_type_id, get_feature_id and get_routine_id, to abstract the underlying type of feature_id, and so on 
when manipulating the bytecode

Revision 82674 - Directory Listing
Modified Fri Mar 26 16:52:07 2010 UTC (9 years, 8 months ago) by manus
Original Path: trunk/Src/C
Use `int' instead of `long' otherwise on 64-bit platforms where `long' is 8-bytes it would not read the byte code properly.


Revision 82647 - Directory Listing
Modified Tue Mar 23 10:08:26 2010 UTC (9 years, 8 months ago) by larryl
Original Path: trunk/Src/C
Implemented "Continue execution on assertion violation" for both classic mode and Dotnet mode

Now when debugger stopped at contract violation, users can just click the "ignore contract violation" menu item (in the Project tool bar's drop down menu) to ignore current contract violation and continue normal execution.

The debugger IPC and Dotnet debugger communication part (such as {APPLICATION_EXECUTION_DOTNET}.impl_ignore_current_assertion_violation) are mostly done by Jocelyn

For task page, please see:
http://community.eiffel.com/collab/content/continue-execution-assertion-violation

Revision 82550 - Directory Listing
Modified Wed Mar 10 23:42:03 2010 UTC (9 years, 8 months ago) by manus
Original Path: trunk/Src/C
Instead of trying to pass the Eiffel string object representing the versions, we are passing the C string and the Eiffel side handles that properly. This solve the issue where the second RTMS could render the first RTMS result invalid if a GC cycle occurs.


Revision 82537 - Directory Listing
Modified Wed Mar 10 00:20:23 2010 UTC (9 years, 8 months ago) by manus
Original Path: trunk/Src/C
Changed the key for storing the type name to not conflict with attribute name.
Fixed a bug where if the old version or the new version of a type is missing, it would fail within the call to `RTMS' since it only accepts non-NULL references. Fixes test eweasel#store031 for C retrieval.


Revision 82536 - Directory Listing
Modified Wed Mar 10 00:17:33 2010 UTC (9 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed a bug found in eweasel test#store031 where we were calling twice `run_idr_destroy' during a retrieval that generates some `correct_mismatches' and we freed twice the `idr_ref_table' reference without checking it was already freed causing a crash.


Revision 82520 - Directory Listing
Modified Fri Mar 5 05:35:12 2010 UTC (9 years, 9 months ago) by manus
Original Path: trunk/Src/C
Twining a SPECIAL will now preserved just the count not the capacity.


Revision 82487 - Directory Listing
Modified Mon Mar 1 17:58:54 2010 UTC (9 years, 9 months ago) by manus
Original Path: trunk/Src/C
Adapted to read version information recently added to the melted file.
Fixed a bug preventing reading of melted file with more than MAX_TYPE types being described (this happens on large project).


Revision 82430 - Directory Listing
Modified Thu Feb 25 07:18:04 2010 UTC (9 years, 9 months ago) by manus
Original Path: trunk/Src/C
Fixed C compilation warning on OpenBSD which was a mistake since we were trying to compare a signed value with an unsigned one.


Revision 82429 - Directory Listing
Modified Thu Feb 25 07:15:59 2010 UTC (9 years, 9 months ago) by manus
Original Path: trunk/Src/C
Made code compile under OpenBSD:
* defined ENOTSUP
* Mark `eif_pthread_sem_wait_with_timeout' not implemented


Revision 82423 - Directory Listing
Modified Wed Feb 24 23:19:09 2010 UTC (9 years, 9 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#exec323 where we cannot avoid code duplication to implement <= and >= using < or > because of the NaN singularity.


Revision 82422 - Directory Listing
Modified Wed Feb 24 22:50:02 2010 UTC (9 years, 9 months ago) by manus
Original Path: trunk/Src/C
Removed useless code causing a warning about a non-used local.


Revision 82421 - Directory Listing
Modified Wed Feb 24 22:17:13 2010 UTC (9 years, 9 months ago) by manus
Original Path: trunk/Src/C
* Added support for detection of version mismatch for version specified in `storable_version' note clause of a class. When there is a mismatch in the version, we raise a call to `correct_mismatch' for the C storable version, and for the time being rejects the storable with the SED version.
* For the C storable, we have increased all the format storable versions to XXX_6_6. We have also added the notion of format properties which let us store or not attachment marks, or store the old SPECIAL format or new one (and retrieve it accordingly).
* For the C storable, made private some routines that are only used by `retrieve.c'. Removed `eif_is_new_independent_format' and `eif_is_new_recoverable_format' because we force them to be True now (thus we have removed non-called features such as `imake_header'). It was good to have them when the formats have been used.
* SED: in order to not break SED_INDEPENDENT_XXX we added SED_RECOVERABLE_XXX. Made `independent_store' in SED_STORABLE_FACILITIES use the new recoverable format. The new recoverable format will eventually have the same features as the C recoverable format, but for the time being it does nothing apart from reading the storable version of classes being retrieved and verifying that they match the versions from the retrieving system.
* SED: Except SED_INDEPENDENT_XXX all serializers have a version number which can be used to detect mismatch between formats and to avoid reading something we should not be reading.
* SED: Added new errors
* SED: Improved SED_READER_WRITER with the addition of `cleanup' that can be used to consume all the remaining bytes to be read if there was some kind of errors during a retrieval. To support that we have changed the format in a backward compatible way for SED_MEDIUM_READER_WRITER by storing in the chunk header if there are more chunks to read or not. This facility is not yet used by SED, but will be shortly.
* SED: Fixed a bug in SED_MEDIUM_READER_WRITER where the buffer would shrink if the same instance is used to read a storable after writing a small one, the reading buffer will be shrink to the last reading buffer size instead of reusing the default buffer size.


Revision 82418 - Directory Listing
Modified Wed Feb 24 21:41:53 2010 UTC (9 years, 9 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#exec191 and test#exec324 where optimizations of `do_nothing' on non-predefined entities would optimize away the evaluation of the target of the call to `do_nothing' which is not good since the target might have a side-effect (raising an exception or printing something).

Revision 82358 - Directory Listing
Modified Tue Feb 16 16:49:31 2010 UTC (9 years, 9 months ago) by manus
Original Path: trunk/Src/C
Added support for `storable_version' in the note clause of a class. This information can then be retrieved via INTERNAL. Storable support will come later.
Removed `ei_count_persistent_field_of_type' from eif_internal.h as now we have written it inline in ISE_RUNTIME from ELKS.

Revision 82329 - Directory Listing
Modified Sat Feb 13 06:25:22 2010 UTC (9 years, 9 months ago) by manus
Original Path: trunk/Src/C
Added ability to find out how many persistent attribute there is in a type. This is the counterpart implementation for the addition of `persistent_field_count' in INTERNAL in ELKS.


Revision 82304 - Directory Listing
Modified Thu Feb 11 17:25:22 2010 UTC (9 years, 9 months ago) by manus
Original Path: trunk/Src/C
Renamed VOLATILE into TRANSIENT which is now the name on the Eiffel side for qualifying attributes that do not need to be stored into a storable.


Revision 82282 - Directory Listing
Modified Tue Feb 9 19:02:32 2010 UTC (9 years, 9 months ago) by manus
Original Path: trunk/Src/C
Added support for the `Total order on REALs' option. When enabled the generated code will simply change the code generation for =, >, <, >= and <= when operands are both REALs so that NaN = NaN and NaN being the smallest value for REALs.
The missing part is that if the precompiled library is built with that setting and your project is not using that setting then you will get some inconsistency. In the next commit we will trigger a warning when this occurs.


Revision 82183 - Directory Listing
Modified Thu Jan 28 00:48:33 2010 UTC (9 years, 10 months ago) by manus
Original Path: trunk/Src/C
Removed useless argument to `read_header'.


Revision 82156 - Directory Listing
Modified Sat Jan 23 00:04:01 2010 UTC (9 years, 10 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#store029, a similar bug to bug#16395 and eweasel test#store026. The issue is that we did a comparison in the wrong order.


Revision 82084 - Directory Listing
Modified Sat Jan 16 15:32:27 2010 UTC (9 years, 10 months ago) by manus
Original Path: trunk/Src/C
Added support for optimizing calls to `nan', `positive_infinity' and `negative_infinity' in .NET/melted/C code generation.
Removed `generate_constant_access_on_real' from IL_CODE_GENERATOR and descendants since we do not use it (we have to use `put_real_constant' instead as they were .NET static field literals).
Improved .NET code generation of statics.
Allowed basic types builtins to be optimized via IL_SPECIAL_FEATURES too (they were not before because IL_NODE_GENERATOR.process_external_b did not even look them up).
Ensured that if EXTERNAL_B.is_static_call is set, then EXTERNAL_B.static_class_type is set, this was not the case when in IL_NODE_GENERATOR.process_nested_b we figured out that we could discard the target and the target was generated.

Revision 82072 - Directory Listing
Modified Wed Jan 13 18:30:01 2010 UTC (9 years, 10 months ago) by manus
Original Path: trunk/Src/C
Updated to new basic operations opcodes.


Revision 82071 - Directory Listing
Modified Wed Jan 13 18:27:31 2010 UTC (9 years, 10 months ago) by manus
Original Path: trunk/Src/C
Fixed wrong opcodes for BC_IS_NAN, BC_IS_NEGATIVE_INFINITY and BC_IS_POSITIVE_INFINITY compared to what the Eiffel compiler generates.


Revision 82063 - Directory Listing
Modified Tue Jan 12 23:56:17 2010 UTC (9 years, 10 months ago) by manus
Original Path: trunk/Src/C
Made code compile on Windows.


Revision 82062 - Directory Listing
Modified Tue Jan 12 23:50:36 2010 UTC (9 years, 10 months ago) by manus
Original Path: trunk/Src/C
Uniformized the output of NaN, -Infinity and Infinity to be the same on all our platforms.


Revision 82048 - Directory Listing
Modified Mon Jan 11 23:17:15 2010 UTC (9 years, 10 months ago) by manus
Original Path: trunk/Src/C
* Added support for `nan', `negative_infinity', `positive_infinity', `is_nan', `is_negative_infinity' and `is_positive_infinity' for melted, C and .NET code generation.
* Improved the .NET code generation for accessing features of System.Math to provide more generality (than just Min and Max).
* Improved the .NET code generation for built-ins to get the implementation from the .NET Eiffel runtime rather than C externals as it is done now. This reduces the code dupplication for .NET and classic for the following classes: IDENTIFIED_ROUTINES, IDENTIFIED_CONTROLLER and WEL_IDENTIFIED.
* Improved the .NET Eiffel runtime to target only .NET 2.0, updated the Visual Studio solution accordingly. Increased the version number too. Updated to use IEqualityCompare in RT_REFERENCE_COMPARER (as using IComparer is obsolete in .NET 2.0) and updated INTERNAL and SED_OBJECTS_TABLE accordingly.
* Updated Unix and Java facade for IL_CODE_GENERATOR. 


Revision 81998 - Directory Listing
Modified Wed Jan 6 18:52:48 2010 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/C
Fixed a double free problem in `eif_terminate_all_other_threads' because we forget to reset `running_thread_list' after each iteration and thus we would try to remove more than once entries via `eif_remove_gc_stacks' if we had remaining threads alive.


Revision 81991 - Directory Listing
Modified Tue Jan 5 22:48:53 2010 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/C
Implemented `eif_pthread_is_alive' for Windows and VxWorks.
Implemented `eif_pthread_kill' for VxWorks.


Revision 81989 - Directory Listing
Modified Tue Jan 5 22:02:14 2010 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/C
Added `eif_pthread_is_alive' which is necessary to fix eweasel test#thread012 by detecting that a running thread has been killed outside the Eiffel environment.


Revision 81986 - Directory Listing
Modified Tue Jan 5 20:01:55 2010 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/C
Fixed a problem occurring on 64-bit big endian machine because in `st_write' we stored a 64-bit integer as a 32-bit integer (mostly storing zeroes) and retrieving those zeroes in rt_nmake'. Now we make sure to store 32-bit to have a proper retrieval.


Revision 81957 - Directory Listing
Modified Mon Dec 28 23:21:31 2009 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/C
Fixed invalid compatibility macro `eif_thr_create_with_args'.
Updated code to refer to `eif_thr_create_with_attr'.


Revision 81941 - Directory Listing
Modified Fri Dec 25 17:07:24 2009 UTC (9 years, 11 months ago) by alexk
Original Path: trunk/Src/C
Fixed the issue reported in bug#13854 with accessing a static buffer from different threads by making it automatic (test#lib031).

Revision 81940 - Directory Listing
Modified Fri Dec 25 16:41:27 2009 UTC (9 years, 11 months ago) by alexk
Original Path: trunk/Src/C
Removed macro definition that is no longer used.

Revision 81939 - Directory Listing
Modified Fri Dec 25 16:17:24 2009 UTC (9 years, 11 months ago) by alexk
Original Path: trunk/Src/C
Removed static buffer that was used to keep the signal name as this name can be passed directly to report the problem (this addresses an issue reported in bug#13854, see also test#exec193).

Revision 81934 - Directory Listing
Modified Thu Dec 24 12:58:48 2009 UTC (9 years, 11 months ago) by alexk
Original Path: trunk/Src/C
Removed the check that prevented expanded locals from being initialized in class invariant that caused feature call on void target in test#attach019 (together with the previous fix in the compiler this fixes bug#14288).

Revision 81920 - Directory Listing
Modified Wed Dec 23 22:43:28 2009 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/C
* Because of a HANDLE memory leak on Windows and also because we never used the argument of `eif_pthread_exit', I've removed it and replaced it by the thread ID of the thread we want to exit. That wait just before exiting on Windows, we can close the HANDLE.
* Changed the implementation of MUTEX on Windows to use CRITICAL_SECTION instead of Windows Mutex since they are more efficient, especially in multi CPUs machines.
* Renamed `eif_thr_create_with_args' into `eif_thr_create_with_attr' that directly take the argument to create the thread from the EIF_THR_ATTR_TYPE structure (initialized in the Eiffel code via the THREAD_ATTRIBUTES class).
* Redesigned THREAD_ATTRIBUTES to only support `priority' and `stack_size', made the existing queries obsolete.
* Added `owner' query in MUTEX to help during debugging.
* Made the THREAD class thread safe. In particular, now you cannot reuse the same THREAD instance to launch several threads. Added assertion to ensure that. Also `thread_id' is now safely initialized and is available in both parent and child thread as soon as they get control to the THREAD instance.
* Ensured that `exit' in THREAD is only called from withing a thread.
* Added `is_last_launch_successful' in THREAD to let clients if the thread was successfully launched or not.
* Added `join_with_timeout' in THREAD.
* Moved most features of THREAD_CONTROL to THREAD.
* Added THREAD_ENVIRONMENT to get the current_thread_id.
* Renamed the release_*_lock routine to match the name used in the acquire_*_lock and made the old names obsolete.


Revision 81904 - Directory Listing
Modified Wed Dec 23 16:17:35 2009 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/C
Fixed typo.


Revision 81894 - Directory Listing
Modified Tue Dec 22 23:51:34 2009 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/C
Ensured that it does not fail when calling `file_flush' on the standard intput/output/error stream.


Revision 81892 - Directory Listing
Modified Tue Dec 22 23:37:31 2009 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#lib034 where `flush' did not actually write immediately to disk.


Revision 81884 - Directory Listing
Modified Mon Dec 21 20:03:19 2009 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/C
* For increased clarity, renamed `tid' into `thread_id'.
* Changed the type of `thread_id' to be directly `EIF_THR_TYPE' instead of `EIF_THR_TYPE *', that way we avoid a useless memory allocation.
* Ensured that even the main thread as a non-zero thread ID.
* Moved definition of `eif_set_thr_context' from `cecil.c' to `eif_threads.c' as the later knows exactly how to initialize a thread.
* Changed signature of `dbg_switch_to_thread' and `get_thread_index' to use `EIF_THR_TYPE' instead of `rt_uint_ptr'.
* Removed code which was used when no condition variable support existed as now we supports it on all our platforms.
* Removed `yield_address' on Windows since now we are directly using `SwitchToThread' (due to our minimum support of Win2k).
* Added `eif_thr_root_object' which returns the root object associated with a thread if any.a
* Added `eif_thr_wait_with_timeout' which will wait for a thread termination with a timeout.
* Fixed a bug in EiffelStudio where switching between threads might not work if the EIF_THR_TYPE value was larger than 32-bit.


Revision 81868 - Directory Listing
Modified Sat Dec 19 01:04:04 2009 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/C
Fixed typo in our encapsulation of write lock for a read/write lock which caused the read lock to be locked and thus failing the updated eweasel test#thread013.


Revision 81862 - Directory Listing
Modified Fri Dec 18 21:44:51 2009 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/C
Fixed issue in `eif_pthread_set_priority' which was only setting the current thread priority on Windows instead of thread `thread_id'.


Revision 81852 - Directory Listing
Modified Thu Dec 17 20:18:28 2009 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/C
Revamped in internals of multiplatform threading API:
* Exported `eif_pthread_xxx' calls which are platform independent implementations of the various POSIX threads. Instead of raising an exception, those routines only returns an error code (defined in eif_error.h).
* Renamed LW_MUTEX into CS (Critical Section) and made it available to the outside world (i.e. not just the runtime internals, although there is not yet an Eiffel class wrapper for them).
* Added the RT_TRACE and RT_TRACE_KEEP which are by default no-ops but that could be defined to monitor execution of routines returning an error code when they return something else than T_OK.
* Reimplemented condition variable on Windows (using code from the Apache Runtime Library).
* Added _GNU_SOURCE definition on Linux platform so that we can get the definition for pthread_rwlock_t type even on older Linux version that we use (Fedora Core 2).
* Removed `eif_cond_var.[ch]' and `eif_rw_lock.c' as now everything is implemented in `posix_threads.c'.
* Removed EIF_DFLT_SIGVTALARM in sig.c because it was only used when EIF_PCTHREADS was defined and we never did.
* Changed signature of `eif_thr_entry' since now we have only one signature for all our platforms via `eif_pthread_create'.
* Implemented `eif_sleep' for VxWorks too. 
* Implemented `eif_pthread_yield' for all our platforms.
* All platforms supports `eif_thr_join_all' so removed the usage of the platform specific one.
* Defined our own Eiffel priority whose values are between 0 and 255.
* Ensured that our mutexes are recursive on all platforms.
* Ensured that threads are always created detached (the Eiffel code does not yet reflect that).


Revision 81851 - Directory Listing
Modified Thu Dec 17 19:30:39 2009 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/C
Use `alib_line' instead of `link_line' as otherwise we cannot link `ecdbgd.exe' on Windows using gcc.


Revision 81807 - Directory Listing
Modified Fri Dec 11 22:41:13 2009 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/C
Removed // style comments to make it compile on strict C compiler (e.g. vxworks one)
Fixed various C compilation error under VxWorks.
Implemented `eif_sleep' for VxWorks.


Revision 81783 - Directory Listing
Modified Tue Dec 8 18:49:55 2009 UTC (9 years, 11 months ago) by manus
Original Path: trunk/Src/C
Fixed comment typo.


Revision 81748 - Directory Listing
Modified Sat Dec 5 00:20:28 2009 UTC (10 years ago) by manus
Original Path: trunk/Src/C
Commented out postcondition which cannot be verified in practice although correct in principle.


Revision 81745 - Directory Listing
Modified Fri Dec 4 22:57:25 2009 UTC (10 years ago) by manus
Original Path: trunk/Src/C
Migrating to EiffelStudio 6.6.


Revision 81744 - Directory Listing
Modified Fri Dec 4 22:56:56 2009 UTC (10 years ago) by manus
Original Path: trunk/Src/C
Fixed warnings reported by static analyser when not checking validity of memory allocation and check status of call to `close'.


Revision 81743 - Directory Listing
Modified Fri Dec 4 22:49:40 2009 UTC (10 years ago) by manus
Original Path: trunk/Src/C
Made code matches the comment that when there is only one thread we can skip synchronization.


Revision 81719 - Directory Listing
Modified Wed Dec 2 19:50:14 2009 UTC (10 years ago) by manus
Original Path: trunk/Src/C
* Fixed bug#16395 and eweasel test#store026 to avoid mismatch if the metadata stored in `eskelet' is simplified or not (i.e. for class A[G] feature g: B[G], and then having A [INTEGER] could either describe `g' as either `B[G]' or `B[INTEGER]', eventhough different they are the same type and should not yield a mismatch).
* Factorized switch statement to get a dynamic type based from the SK_xx type into `eif_sk_type_to_dtype'.


Revision 81710 - Directory Listing
Modified Tue Dec 1 23:29:11 2009 UTC (10 years ago) by manus
Original Path: trunk/Src/C
Made compilable when defining `RECOVERABLE_DEBUG' in multithreaded mode.


Revision 81666 - Directory Listing
Modified Wed Nov 25 00:06:10 2009 UTC (10 years ago) by manus
Original Path: trunk/Src/C
Actually creating `root_obj' in EIF_RT_BASIC_SETUP was actually creating a non-initialized C object to be used as an Eiffel object and at the first GC cycle it would most likely crash. Only `traverse.c' did not take into account the nullness of `root_obj'.


Revision 81614 - Directory Listing
Modified Mon Nov 23 06:00:46 2009 UTC (10 years ago) by manus
Original Path: trunk/Src/C
Minor speed improvement by not marking needlessly an expanded object with the EO_COMP flag.


Revision 81605 - Directory Listing
Modified Sat Nov 21 23:48:48 2009 UTC (10 years ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#store028 where the type accounting for a type involving a TUPLE type would skip the TUPLE type ID and thus will not record it in the header for independent store, causing an access out of bound during retrieval if no TUPLE objects was stored. This was found because EiffelStudio kept randomly crashing when loading a project that has an empty statistics for AutoTest.


Revision 81513 - Directory Listing
Modified Thu Nov 12 19:17:18 2009 UTC (10 years ago) by manus
Original Path: trunk/Src/C
Removed `wclass_name' which has not been used for a while now.


Revision 81427 - Directory Listing
Modified Thu Nov 5 18:14:19 2009 UTC (10 years, 1 month ago) by manus
Original Path: trunk/Src/C
Completed rev#81426 by updating the reader to the new generated bytecode for the generation of manifest array.


Revision 81426 - Directory Listing
Modified Thu Nov 5 18:05:31 2009 UTC (10 years, 1 month ago) by manus
Original Path: trunk/Src/C
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 81407 - Directory Listing
Modified Wed Nov 4 20:09:21 2009 UTC (10 years, 1 month ago) by manus
Original Path: trunk/Src/C
Fixed typo.


Revision 81319 - Directory Listing
Modified Fri Oct 30 00:26:39 2009 UTC (10 years, 1 month ago) by davids
Original Path: trunk/Src/C
VMS: fix 64 bit pointer warnings in iconv_ wrappers; make iconv wrapper tolerate calls with NULL pointers (encoding library uses this)

Revision 81316 - Directory Listing
Modified Thu Oct 29 17:30:43 2009 UTC (10 years, 1 month ago) by manus
Original Path: trunk/Src/C
Renamed `is_debug' into `eif_is_debug' to avoid potential conflicts with external libraries.


Revision 81306 - Directory Listing
Modified Wed Oct 28 21:44:55 2009 UTC (10 years, 1 month ago) by manus
Original Path: trunk/Src/C
Fixed a last issue found with the new console handling for fixing eweasel test#runtime014 due to standard handles being initialized a non-zero value (when the application is linked as a WINDOWS application) but the handles are actually useless because there is actually no console.
Now we are using `GetStartupInfo' to find out if the calling process has set those handles or not and if it does not we call `AllocConsole'.


Revision 81305 - Directory Listing
Modified Wed Oct 28 17:43:57 2009 UTC (10 years, 1 month ago) by manus
Original Path: trunk/Src/C
In debug mode define ISE_USE_ASSERT for enabling assertion.


Revision 81297 - Directory Listing
Modified Tue Oct 27 17:09:49 2009 UTC (10 years, 1 month ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#lib030 and bug#15553 due to the improper checking of S_ flags when they are made of 2 or more bits.


Revision 80991 - Directory Listing
Modified Thu Oct 1 22:28:02 2009 UTC (10 years, 2 months ago) by manus
Original Path: trunk/Src/C
Fixed an issue for autotest (eweasel test#store025) retrieval of a non-void safe system set of objects in
  a void-safe system as long as all attributes are attached, if one of them is not attached we trigger
  an exception and the object cannot be retrieved. Refactored the attribute matching so that we mark
  if a check for non-void attribute is required when retrieving an attribute.
Once the fix was done, we realized that now `store021' was failing. This is because the attribute description
  in `eskelet' was wrong. If you had `LIST [attached G]' in a generic class, we dropped the attachment mark.
  After fixing the bug, we realized that eweasel test#store021 and test#store018 were not passing anymore
  because the tests were based on that bug. We changed test#store021 to make it pass by taking this change
  into account. However we haven't fixed test#store018 yet because it requires another change in the compiler
  that are will do shortly.


Revision 80981 - Directory Listing
Modified Wed Sep 30 20:40:57 2009 UTC (10 years, 2 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#reflection005 where if you have "B [C [STRING]]" where C is an expanded class
  `eif_type_id' would return the wrong type ID as it would simply consider that C was not expanded.
  The fix is the same as in rev#43807 in retrieve.c for `cecil_info'.


Revision 80953 - Directory Listing
Modified Tue Sep 29 14:19:37 2009 UTC (10 years, 2 months ago) by alexk
Original Path: trunk/Src/C
Fixed bug#13852 and bug#13816 by moving evaluation of memory required for allocation to spmalloc and adding a check that there is no overflow (see test#runtime015).

Revision 80882 - Directory Listing
Modified Thu Sep 24 18:26:20 2009 UTC (10 years, 2 months ago) by paulb
Original Path: trunk/Src/C
Quoted command and arguments passed when calling prelink script, to avoid issues found when using spaces in paths.


Revision 80864 - Directory Listing
Modified Thu Sep 24 05:33:32 2009 UTC (10 years, 2 months ago) by jfiat
Original Path: trunk/Src/C
We really need to revert previous_otop to NULL, then revert previous commit on this part.

Revision 80855 - Directory Listing
Modified Wed Sep 23 15:08:16 2009 UTC (10 years, 2 months ago) by jfiat
Original Path: trunk/Src/C
Fixed bug#16175: Activating execution recording and stepping into routine crashes estudio

The issue was more general, any "procedure" evaluation would have failed.
Since we use this to control remotely the execution record and replay, this was failing.



Revision 80849 - Directory Listing
Modified Wed Sep 23 10:33:02 2009 UTC (10 years, 2 months ago) by alexk
Original Path: trunk/Src/C
Ensured the non-console application does not terminate with an exception when the initial standard handles are invalid.

Revision 80800 - Directory Listing
Modified Tue Sep 22 14:58:01 2009 UTC (10 years, 2 months ago) by jfiat
Original Path: trunk/Src/C
Fixed various debugger's issues related to Expanded object (especially about items from SPECIAL of expanded object). Fixed bug#16197: is DEBUG_OUTPUT no longer supported?

Better support for `generating_type' in experimental mode.
Added assertions and added a few detachable/attached marks to prepare to void-safety.


Revision 80780 - Directory Listing
Modified Mon Sep 21 16:13:26 2009 UTC (10 years, 2 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#melt097 by ensuring that when a type expression as an attachment mark,
  the generated code by the compiler preserves it (it currently was discarding it). The same
  change was done for the catcall checker as we only checked if the type as the attachment mark
  and not if the type was attached. Updated the interpreter accordingly.
Removed hard-coding of {TYPE}.has_default code generation, the built-in external is fine. Kept the
  code from the built_ins directory for the code generation, but this time we simply remove the check
  from the code generation since it should work for detachable references.


Revision 80778 - Directory Listing
Modified Mon Sep 21 16:07:44 2009 UTC (10 years, 2 months ago) by manus
Original Path: trunk/Src/C
Fixed issues with `eif_attached_type' and `eif_non_attached_type' when it was called on BIT or TUPLE
  type, they would not yield the proper result and will make the following eweasel tests to fail:
  test#valid254, test#melt028, test#melt030, test#attach042 and test#attach047.
Changed behavior of `eif_typename' to always print the attachment mark ! even at the first level in order
  to make `melt097' print the proper types. This changes required changing the SED classes so that
  test#store019 passed as SED was adding them manually.


Revision 80777 - Directory Listing
Modified Mon Sep 21 15:59:58 2009 UTC (10 years, 2 months ago) by manus
Original Path: trunk/Src/C
Since now we compile at the minimum for Windows 2k we can now safely use `SignalObjectAndWait'.


Revision 80747 - Directory Listing
Modified Thu Sep 17 12:40:18 2009 UTC (10 years, 2 months ago) by alexk
Original Path: trunk/Src/C
Fixed bug#13851 by blocking signals outside `add_core'.

Revision 80684 - Directory Listing
Modified Fri Sep 11 10:27:56 2009 UTC (10 years, 2 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#reflection003 by ensuring that returning the i-th field of an object in INTERNAL
  as an ANY returns the object version of the basic type, and not the _REF version as we used
  to do in the past when we did not have copy semantics.


Revision 80640 - Directory Listing
Modified Sun Sep 6 18:53:24 2009 UTC (10 years, 3 months ago) by dfurrer
Original Path: trunk/Src/C
Adding architecture flags

Revision 80639 - Directory Listing
Modified Sat Sep 5 17:10:41 2009 UTC (10 years, 3 months ago) by dfurrer
Original Path: trunk/Src/C
Removing an Objective-C specific flag

Revision 80638 - Directory Listing
Modified Sat Sep 5 17:07:26 2009 UTC (10 years, 3 months ago) by dfurrer
Original Path: trunk/Src/C
Removing an Objective-C specific flag

Revision 80637 - Directory Listing
Modified Sat Sep 5 16:25:02 2009 UTC (10 years, 3 months ago) by dfurrer
Original Path: trunk/Src/C
Adding 64bit Eiffel runtime configuration for Mac OS X.

Revision 80618 - Directory Listing
Modified Fri Sep 4 07:01:46 2009 UTC (10 years, 3 months ago) by jfiat
Original Path: trunk/Src/C
typo + code cleaning (cosmetics)

Revision 80614 - Directory Listing
Modified Thu Sep 3 18:53:11 2009 UTC (10 years, 3 months ago) by davids
Original Path: trunk/Src/C
VMS: remove (by conditionalizing out) the remapping of NL_ITEM codes that was required for 6.3 I18N library; no longer needed.

Revision 80613 - Directory Listing
Modified Thu Sep 3 18:44:54 2009 UTC (10 years, 3 months ago) by davids
Original Path: trunk/Src/C
VMS: if getcwd() returns NULL, try again with VMS format option. This can happen when current working directory contains a multi-valued logical name as the device, and is not representable as a UNIX-style path

Revision 80604 - Directory Listing
Modified Thu Sep 3 11:23:10 2009 UTC (10 years, 3 months ago) by alexk
Original Path: trunk/Src/C
Fixed bug#13842 by blocking signals in *stack_alloc* routines.

Revision 80603 - Directory Listing
Modified Thu Sep 3 11:04:06 2009 UTC (10 years, 3 months ago) by alexk
Original Path: trunk/Src/C
Fixed bug#13850 by blocking signals in map_next.

Revision 80602 - Directory Listing
Modified Thu Sep 3 10:59:28 2009 UTC (10 years, 3 months ago) by alexk
Original Path: trunk/Src/C
Fixed bug#13849 by blocking signals in map_reset.

Revision 80601 - Directory Listing
Modified Thu Sep 3 10:45:30 2009 UTC (10 years, 3 months ago) by alexk
Original Path: trunk/Src/C
Fixed bug#13840 by blocking signals in extend_trace_string and rearranging code that reallocates memory.

Revision 80575 - Directory Listing
Modified Tue Sep 1 21:00:30 2009 UTC (10 years, 3 months ago) by alexk
Original Path: trunk/Src/C
Fixed bug#13870 by using (void) instead of plain () in function prototypes.

Revision 80562 - Directory Listing
Modified Tue Sep 1 16:27:02 2009 UTC (10 years, 3 months ago) by jfiat
Original Path: trunk/Src/C
Fixed bug#16195: Debug session with conditional breakpoint causes program to exhaust memory, crash EStudio
+ cosmetic on interp.c

Revision 80541 - Directory Listing
Modified Mon Aug 31 19:01:06 2009 UTC (10 years, 3 months ago) by alexk
Original Path: trunk/Src/C
Fixed bug#13969 by initializing standard handles regardless of console
allocation status because the handles could be redirected, set by the main
application in case of a DLL, etc.
Synchronized modification of standard handles on Windows to avoid their
corruption if several threads try to initialize them simultaneously.
Applied 0-buffer settings to the standard handles if they are just created.


Revision 80455 - Directory Listing
Modified Thu Aug 27 16:26:02 2009 UTC (10 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed incorrect CHECK statement as data can be null if there is no more threads to process.


Revision 80415 - Directory Listing
Modified Tue Aug 25 17:33:27 2009 UTC (10 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed an issue with `eif_override_byte_code_of_body' when the code is not melted. We need to create
  the `melt' and `mpatidtab' array.
Added some assertions and comments.


Revision 80356 - Directory Listing
Modified Thu Aug 20 11:36:07 2009 UTC (10 years, 3 months ago) by alexk
Original Path: trunk/Src/C
Corrected signed/unsigned assignment/comparison in sp_init.
Fixed bug#13855 by replacing multiplication in the loop in sp_init with
addition.


Revision 80355 - Directory Listing
Modified Thu Aug 20 11:04:25 2009 UTC (10 years, 3 months ago) by alexk
Original Path: trunk/Src/C
Used %f specifier instead of %lf to print double as the latter has no effect in C99 and is undefined in C89 (see bug#13872).

Revision 80353 - Directory Listing
Modified Thu Aug 20 09:39:09 2009 UTC (10 years, 3 months ago) by tedf
Original Path: trunk/Src/C
Fixed bug#11166 that long reason does not appear in right position. This was because `location' occupied 7 characters positions more.

Revision 80336 - Directory Listing
Modified Wed Aug 19 19:12:34 2009 UTC (10 years, 3 months ago) by alexk
Original Path: trunk/Src/C
Fixed bug#13870 by using (void) instead of plain () in function prototypes.

Revision 80247 - Directory Listing
Modified Thu Aug 13 17:24:47 2009 UTC (10 years, 3 months ago) by manus
Original Path: trunk/Src/C
To prevent many eweasel tests to fail due to missing C compilation that was required with the addition
  of `generating_type: TYPE [like Current]' in ANY, we made sure that the compiler would not force a
  freeze each time a new generic derivation of TYPE was added to the system (it was freezing because TYPE
  contains some C externals). To prevent the freeze, now in the case of TYPE we say no need to freeze
  and we have augmented the interpreter with the ability to generate in byte code EXTERNAL_B node assuming
  they are builtin.
Fixed a bug in the code generation of the manifest type `{like Current}' in ANY. Indeed from ANY's point
  of view, like Current is a reference and it was generating the TYPE instance for the reference generice
  derivation of TYPE. Unfortunately when the descendant is expanded it uses the wrong generic derivation
  and code fails at execution. To prevent that problem, a manifest type creation only compute the type
  of its actual generic parameter, and then in the runtime we added `eif_typeof_type_of' which computes
  the approprite TYPE generic derivation to use based on the actual type. Because of that the 
  `rt_type_set' is indexed via the actual generic parameter type rather than by the type of the TYPE instance.
  Note the entry is actually `dftype + 1' as the 0 index is for TYPE [NONE].
Fixed missing analyze of type in TYPE_EXPR_B causing `Current' not to be registered for GC in finalized mode
  when generating a routine with just `Result := {like Current}'. This was making eweasel test#runtime005
  fail.
Fixed a bug in processing TYPED_POINTER associated CLASS_TYPE because the actual generic parameter recorded
  in `basic_type' could be anything and thus would be out of context.
Removed native processing of `generating_type' for basic types since now we need to generate STRING in
  non-experimental mode and TYPE [like Current] in experimental mode.
Renamed private `sk_type' from eif_type_id.c into public `eif_dtype_to_sk_type' in `cecil.c'. This is used
  by the `eif_typeof_type_of' above to calculate the proper generic derivation.
Made `RTLNTY' and `eif_type_malloc' really thread safe (they were not previously due to resizing of
  `rt_type_set'.
Changed signature of `generate_cid_init' in TYPE_A to also take a context (this is needed for the LIKE_CURRENT
  descendant) and this matches the need for a context in `generate_cid' and `generate_cid_array'.
Fixed `internal_same_generic_derivation_as' in GEN_TYPE_A to properly process actual generic parameter
  which are LIKE_CURRENT. This fixes eweasel test#incr074 which was failing with the addition of 
  `generating_type: TYPE [like Current]' in ANY.
Changed LIKE_CURRENT to always use the context type when provided and if not `conformance_type'.
Refactored `generate_type_id' in CREATE_TYPE to use `generated_id' from TYPE_A. This is needed for allowing
  generating the type declaration of NONE.
This commit fixes eweasel test#melt097 and test#valid257.


Revision 80207 - Directory Listing
Modified Wed Aug 12 06:36:28 2009 UTC (10 years, 3 months ago) by alexk
Original Path: trunk/Src/C
Fixed bug#14429 by avoiding subtraction of potentially unsigned integers that led to unsigned overflow and incorrect result of the comparison.

Revision 80110 - Directory Listing
Modified Wed Aug 5 04:45:09 2009 UTC (10 years, 4 months ago) by tedf
Original Path: trunk/Src/C
Fixed bug#10736 that the following command on Solaris caused runtime panic:
 sh
 cd /
 cat /dev/null | ec

The reason it only happens on Bourne shell (sh) is that it behaves differently than other shells when it sets up a pipeline. Other shells create two processes that are a child of the parent - i.e. they are siblings. But the Bourne shell forks and then the child forks again, so the first process is a child of the second process. Thus when the first process (cat in this case) terminates, the second process (ec in this case) gets a SIGCHLD signal. 

This reveals a signal handling initializing problem in the runtime. When immediately after the signal handler installation, there is a chance that the app receives a signal that needs to be handled before the initialization of the runtime data structures. This is still not fixed by this patch. However we now default all signals to be ignored before the signal handler installation, in order to avoid incorrect handling for signals that are intended to be ignored in between of signal handler installation and the setup for sig_ign[] flags.


Revision 80088 - Directory Listing
Modified Mon Aug 3 23:09:41 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed part of eweasel test#melt097 where {TYPE}.generic_parameter_type (i) builtin implementation
  was not correct since it was always fetching the type associated to the TYPE instance, but not the 
  i-th actual generic parameter of that type.


Revision 79897 - Directory Listing
Modified Wed Jul 22 20:03:44 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Made code compile when not using the ISE GC.


Revision 79896 - Directory Listing
Modified Wed Jul 22 20:03:14 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Made code compile when not using the ISE GC.


Revision 79895 - Directory Listing
Modified Wed Jul 22 20:02:22 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Made code compile when not using the ISE GC.


Revision 79894 - Directory Listing
Modified Wed Jul 22 20:01:19 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
To compile without a GC requires defining NO_GC.


Revision 79893 - Directory Listing
Modified Wed Jul 22 20:00:24 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Made code compile when not using the ISE GC.


Revision 79892 - Directory Listing
Modified Wed Jul 22 19:59:07 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Made code compile when not using the ISE GC.


Revision 79891 - Directory Listing
Modified Wed Jul 22 19:58:15 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Made code compile when not using the ISE GC.


Revision 79878 - Directory Listing
Modified Wed Jul 22 16:31:13 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Forgot to update melt code reader to take into account transient attributes description.


Revision 79871 - Directory Listing
Modified Wed Jul 22 15:27:54 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed wrong commented code to enable the Boehm GC or disable GC altogether.


Revision 79869 - Directory Listing
Modified Wed Jul 22 04:16:23 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed a bug where if we allow `aliased_resized_area' in SPECIAL to shrink the SPECIAL then
  we would end up with a count much greater than capacity. 


Revision 79770 - Directory Listing
Modified Tue Jul 14 05:29:39 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed typos in assertions as shown by bug#14580.


Revision 79768 - Directory Listing
Modified Tue Jul 14 05:09:18 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed useless call to `exit (0)' in `eif_thr_panic' since it calls `eif_panic' just before
  and that routine calls `exit (1)'. Fixes bug#14467.


Revision 79714 - Directory Listing
Modified Fri Jul 10 23:18:13 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed incorrect signature for `egc_ecreate' and `egc_exp_create' since they do not return an object.
  Adapted signatore of locals using them.


Revision 79713 - Directory Listing
Modified Fri Jul 10 23:15:24 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Ensured that `is_process_once' is defined when EIF_THREADS is.


Revision 79712 - Directory Listing
Modified Fri Jul 10 23:14:54 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Initialize `itype' to NULL since some C compiler might not see that it is actually initialized.


Revision 79709 - Directory Listing
Modified Fri Jul 10 23:05:00 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed non-reachable switch default: case.
Ignore return value of `fwrite' when it fails when trying to write the interrupt_flag to avoid warning
  from Code Sonar. Here there is not much we can do and thus user may try again the interruption of the
  program from EiffelStudio.
Made sure to generate a failure when a memory allocation fails.
Fixed memory leak after fork in parent after forking.
Added some assertions.


Revision 79708 - Directory Listing
Modified Fri Jul 10 22:55:43 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed warning raised about Code Sonar when reading `interrupt_flag' since the value could be left unchanged
  if reading fails. Therefore we set the value to 0 before reading that way we can ignore the return
  value of `fread'.


Revision 79707 - Directory Listing
Modified Fri Jul 10 22:52:08 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Avoided allocation of EIF_TYPED_VALUE, by simply having the struct on the stack.
Changed implementation of `bit_inspect' to take a EIF_REFERENCE instead of EIF_OBJECT, updated callers.
Better code flow in event of errors.
Removed useless assignment to locals whose values were not used.


Revision 79706 - Directory Listing
Modified Fri Jul 10 22:46:39 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Proper signature of function pointer to avoid having to cast the pointer when called we only cast from
  the function passed by the Eiffel compiler.


Revision 79705 - Directory Listing
Modified Fri Jul 10 22:45:06 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added CHECK for our assumption of `p_data'.
Removed useless code that was assigning the same value to a location twice in a row.


Revision 79704 - Directory Listing
Modified Fri Jul 10 22:42:02 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Ignore result value of `close' since we do not use it.


Revision 79703 - Directory Listing
Modified Fri Jul 10 22:41:30 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed broken signal routines signature reported by Code Sonar.


Revision 79701 - Directory Listing
Modified Fri Jul 10 22:40:48 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added a CHECK to verify our assumptions.
Added code protection in case if something does not get initialized and then report a failure.


Revision 79700 - Directory Listing
Modified Fri Jul 10 22:39:30 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed warning raised by Code Sonar when initializing TIMEOUT.


Revision 79699 - Directory Listing
Modified Fri Jul 10 22:34:18 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Use manifest strings instead of variables for string constants, because variables could be modified
  outside and thus their content corrupted which could cause a failure when used.
Transformed some MAY_PANIC ifdefs into CHECKs.
Added some assertions.
Better code flow in case of errors.


Revision 79698 - Directory Listing
Modified Fri Jul 10 22:26:31 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Better code flow in case of failure.
Free first allocated memory when second allocation fails.
Added missing assertions.
Simplified initialization of `rt_kind_version'.
Initialized some locals that are passed using their address to routines that may set their value
  as we have no way to ensure that the routine will indeed set their value.
Removed initialization of local `size' whose value was never used.


Revision 79697 - Directory Listing
Modified Fri Jul 10 22:21:19 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed useless local initialization.
Free first allocated memory, when second allocation fails.
Made sure that all memory allocation failure are properly handled.
Added some CHECKs to check our assumptions.


Revision 79696 - Directory Listing
Modified Fri Jul 10 22:18:38 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
To facilitate static analysis by Code Sonar, made the private routines take the operation required
  (i.e. IDR_DECODE/IDR_ENCODE) as argument, so that it can statically prove that the code path
  when decoding stuff won't go in the branch for encoding.


Revision 79695 - Directory Listing
Modified Fri Jul 10 22:13:52 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Made sure we check the return value of `fscanf' for errors in `swallow_nl'.
Check for memory allocation that could fails.


Revision 79694 - Directory Listing
Modified Fri Jul 10 22:07:02 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed invalid printf formats.
Test for allocation failure.


Revision 79693 - Directory Listing
Modified Fri Jul 10 22:03:46 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed useless local variable `l_found_p'.
Added raising of out of memory exception when allocation fails.


Revision 79692 - Directory Listing
Modified Fri Jul 10 22:01:37 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed redundant checks.
Removed non-nedeed initialization.
Free first allocated memory in case of second allocation failure.


Revision 79691 - Directory Listing
Modified Fri Jul 10 21:59:21 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Better code flow in case of error.


Revision 79684 - Directory Listing
Modified Fri Jul 10 19:20:23 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed setting of `nstcall' in RT_STRING_SET_COUNT macro, now it has to be set by callers.
  (this is to avoid useless assignments when callers already set `nstcall' to 0).
Fixed warnings raised by Code Sonar (null pointer dereferencing).
Removed C++ style comments.


Revision 79683 - Directory Listing
Modified Fri Jul 10 19:17:52 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed incorrect signature of `rt_signal'.


Revision 79682 - Directory Listing
Modified Fri Jul 10 19:17:12 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added missing assertions.
Better code flow in case of failure to facilitate static analysis.


Revision 79681 - Directory Listing
Modified Fri Jul 10 19:14:32 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Moved code after checking the precondition since that code made assumptions of the precondition.
Removed useless assignment to local that was not used.


Revision 79680 - Directory Listing
Modified Fri Jul 10 19:11:59 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed useless assignment of `meltpath' since it is already set to NULL if we cannot allocate the path.


Revision 79679 - Directory Listing
Modified Fri Jul 10 19:11:16 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Use `private_id_object' instead of `eif_id_object' in postcondition of `eif_object_id_free' since
  we would perform a double lock causing a deadlock on Unix platforms.


Revision 79678 - Directory Listing
Modified Fri Jul 10 19:09:20 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed useless function cast since the functions being used have the right signatures.
Added missing assertions reflecting our assumptions.


Revision 79677 - Directory Listing
Modified Fri Jul 10 19:08:17 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Better code flow when we cannot allocate `eif_argv'.


Revision 79675 - Directory Listing
Modified Fri Jul 10 19:06:54 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
No need for casting `wstdinit' since it has the right signature for XCreate.


Revision 79674 - Directory Listing
Modified Fri Jul 10 19:06:01 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed useless initializatio of `i' which is set later in the code.


Revision 79673 - Directory Listing
Modified Fri Jul 10 19:05:32 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed a missing raising of an out of memory exception when we cannot allocate some C memory.


Revision 79672 - Directory Listing
Modified Fri Jul 10 19:04:54 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Replaced a MAY_PANIC ifdef by a CHECK.


Revision 79671 - Directory Listing
Modified Fri Jul 10 19:00:31 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added missing CHECKs to show our assumptions.
Some cosmetics on code for which the flow was slightly modified when handling errors.


Revision 79670 - Directory Listing
Modified Fri Jul 10 18:41:11 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Slighly rewritten code to fix warnings found by Code Sonar.


Revision 79668 - Directory Listing
Modified Fri Jul 10 18:24:18 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Better code flow when encountering failure.
Added some missing assertions.
Freed first allocated memory, when second allocation fails.


Revision 79666 - Directory Listing
Modified Fri Jul 10 18:22:33 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed useless local assignments (since local already had the same value).
Fixed a bug in `st_has' which did not verify first that the stack was created before looking for the
  item.


Revision 79664 - Directory Listing
Modified Fri Jul 10 18:20:40 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Use better code flow for failures.
Fixed a harmless buffer overflow because we were reading one extra bytes from BIT objects
  when doing `or' or `xor' operation.


Revision 79663 - Directory Listing
Modified Fri Jul 10 18:13:17 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added a lot of checks to identify place were we previously assumed that values were not NULL.
Removed usage of volatile where it does not make sense, that is to say when the value is only modified
  before calling `setjmp'.
Removed some useless local variables which were assigned to but whose values were never used.
Changed some MAY_PANIC ifdef clauses into CHECKs.


Revision 79655 - Directory Listing
Modified Fri Jul 10 17:23:15 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed `egc_routdisp' which has not been used a for a while (it was only kept for backward compatibility
  when introducing `egc_routdisp_wb' and `egc_routdisp_fl'.
Fixed incorrect signature of egc_ecreate.


Revision 79654 - Directory Listing
Modified Fri Jul 10 17:19:27 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed non used routines `rout_obj_create2' and macro `RTLNR2' which were kept for backward compatibility
  when RTLNRF and RTLNRW were introduced a while ago.
Added some missing preconditions.


Revision 79653 - Directory Listing
Modified Fri Jul 10 17:17:24 2009 UTC (10 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed various warnings hightlighted by Code Sonar (mostly null pointer dereferencing).


Revision 79523 - Directory Listing
Modified Tue Jun 30 22:43:01 2009 UTC (10 years, 5 months ago) by manus
Original Path: trunk/Src/C
Renamed `dexit' into `daemon_exit'. This is to show that in `ipc/shared' it requires a `dexit' function
  to be defined, and to differentiate the `dexit' routine from the runtime used elsewhere.


Revision 79522 - Directory Listing
Modified Tue Jun 30 22:15:09 2009 UTC (10 years, 5 months ago) by manus
Original Path: trunk/Src/C
Added ecdbgd.h header file to declare `dexit' among the various C files.


Revision 79484 - Directory Listing
Modified Fri Jun 26 18:24:42 2009 UTC (10 years, 5 months ago) by manus
Original Path: trunk/Src/C
Added support for unique instances of TYPE when representing the same Eiffel type.
Added speed up for computation of generic dynamic full type by not having `eif_compound_id' perform
  the cache checking. It is now done in the generated code making it slightly bigger but in a tight
  loop, which simply does t := {LIST [ANY]}, we went from 13s down to 4.5s.
Changed signature of crealloc and cmalloc to use `void *' instead of `char *'.
Added new builtin for class TYPE, even if that class has not yet been committed.


Revision 79449 - Directory Listing
Modified Wed Jun 24 22:08:03 2009 UTC (10 years, 5 months ago) by manus
Original Path: trunk/Src/C
Added support for volatile attribute with new validity rule VRVA. They are used with store/retrieve and are currently only supported for the C version of storables. In basic/general store, the attributes are stored with their default value. In independent store, the attributes are simply not stored and upon retrieval are ignored if present only in retrieval system.
Because we store some additional flags in `eskelet' the generated executable is slightly bigger. (120K for 15MB executable).

Revision 79419 - Directory Listing
Modified Tue Jun 23 18:53:48 2009 UTC (10 years, 5 months ago) by davids
Original Path: trunk/Src/C
fix preprocessor syntax error: #elif define(HAS_TIME) --> defined

Revision 79354 - Directory Listing
Modified Thu Jun 18 18:57:25 2009 UTC (10 years, 5 months ago) by manus
Original Path: trunk/Src/C
Allow for new twin semantic in experimental mode to first perform a shallow copy of the object
  being twinned before calling `copy'.


Revision 79348 - Directory Listing
Modified Thu Jun 18 17:31:12 2009 UTC (10 years, 5 months ago) by manus
Original Path: trunk/Src/C
Switched to 6.5 release.


Revision 79339 - Directory Listing
Modified Thu Jun 18 05:43:27 2009 UTC (10 years, 5 months ago) by manus
Original Path: trunk/Src/C
Updated to iPhone SDK 3.0 which requires the new SDK but also the latest gcc 4.2 compiler otherwise you get some bizarre
  syntax errors in the SDK 3.0 headers.


Revision 79296 - Directory Listing
Modified Tue Jun 16 05:58:04 2009 UTC (10 years, 5 months ago) by manus
Original Path: trunk/Src/C
Looks like even if we provide sysroot we need to provide the path to the standard library.


Revision 79214 - Directory Listing
Modified Thu Jun 11 17:20:02 2009 UTC (10 years, 5 months ago) by manus
Original Path: trunk/Src/C
Added new EV_ANY_IMP builtins.


Revision 79192 - Directory Listing
Modified Wed Jun 10 23:39:45 2009 UTC (10 years, 5 months ago) by manus
Original Path: trunk/Src/C
Added new WEL_IDENTIFIED built_in routines.


Revision 79149 - Directory Listing
Modified Tue Jun 9 04:08:12 2009 UTC (10 years, 5 months ago) by manus
Original Path: trunk/Src/C
Fixed updated eweasel test#melt091 where it would still fail for once manifest strings because we forgot
  to store the IC value while creating the STRING object.


Revision 79147 - Directory Listing
Modified Tue Jun 9 00:00:27 2009 UTC (10 years, 5 months ago) by manus
Original Path: trunk/Src/C
Updated the recent change in `interp.c' at rev#79101.


Revision 79131 - Directory Listing
Modified Mon Jun 8 06:50:25 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed an issue with melted code, if during the creation of the agent object, the Eiffel code being called
  is also melted. We need to save and restore the IC variable otherwise it will not work properly once
  the agent is created.


Revision 79105 - Directory Listing
Modified Thu Jun 4 23:54:38 2009 UTC (10 years, 6 months ago) by davids
Original Path: trunk/Src/C
VMS: improve i18n jacket tracing, fix 32/64 bit warnings

Revision 79104 - Directory Listing
Modified Thu Jun 4 23:52:39 2009 UTC (10 years, 6 months ago) by davids
Original Path: trunk/Src/C
VMS: update version ident

Revision 79101 - Directory Listing
Modified Thu Jun 4 22:51:43 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Added ability to also generate `make_empty' when using the old SPECIAL implementation.


Revision 79098 - Directory Listing
Modified Thu Jun 4 21:43:31 2009 UTC (10 years, 6 months ago) by davids
Original Path: trunk/Src/C
VMS: add HAS_SIGACTION, EIF_ARCH_ definitions

Revision 79096 - Directory Listing
Modified Thu Jun 4 20:49:59 2009 UTC (10 years, 6 months ago) by davids
Original Path: trunk/Src/C
VMS: add EIF_ARCH_ constants for _VAX, _ALPHA, and _IA64 (Itanium)

Revision 79064 - Directory Listing
Modified Wed Jun 3 21:59:42 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Previous committed was wrongly included with commit of `retrieve.c'. Reverted to previous version.


Revision 79062 - Directory Listing
Modified Wed Jun 3 21:58:56 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#store022 because we forgot to take into account the new
  GENERAL_STORE_6_4 format. To make things easier, we are now using `rt_kind'
  instead of `rt_kind_version' whenever we want to distinguish the general format.


Revision 79035 - Directory Listing
Modified Tue Jun 2 21:07:55 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
When we have a mismatch, we do not create the _REF version anymore, but the non-ref version so that
  when trying to fix the mismatch we can do object test on {INTEGER} for example.


Revision 79034 - Directory Listing
Modified Tue Jun 2 21:06:51 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Equality between special ignores capacity because otherwise you get to many assertion violations
  in code that decide to actually shrink the capacity. It fixes eweasel test#store018 when using
  the new implementation of SPECIAL.


Revision 79008 - Directory Listing
Modified Tue Jun 2 04:37:58 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Removed non-needed `ccldflags' since gcc will find the libraries thanks to `isysroot' option.
Added configuration file for iPhoneSimulator compilation.


Revision 78992 - Directory Listing
Modified Mon Jun 1 18:16:49 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed precondition so that it makes sense for both SPECIAL implementation.


Revision 78984 - Directory Listing
Modified Mon Jun 1 05:38:16 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Improved compatibility between void-safe systems and non-void safe systems to ensure that a non-void-safe
  system can retrieve any objects stored by a void-safe one without triggering a mismatch.


Revision 78983 - Directory Listing
Modified Sun May 31 17:15:41 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Simplified config files by removing stuff that is not needed.


Revision 78973 - Directory Listing
Modified Fri May 29 23:05:02 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#thread010 where if a thread is responsible to cleanup its parents context structure
  and has no child thread then it would crash because `destroy_mutex' will be set where it should not
  because the variable is used in two places but the usage is disconnected and thus should be reinitialized.


Revision 78942 - Directory Listing
Modified Fri May 29 10:55:24 2009 UTC (10 years, 6 months ago) by alexk
Original Path: trunk/Src/C
Fixed bug#15871 by boxing tuple item if it appears to be of a basic type when a reference result is expected (see test#tuple016). Used current macros rather than obsolete ones to access character items.

Revision 78928 - Directory Listing
Modified Thu May 28 22:52:08 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed a precondition violation in the Eiffel code with void-safe SPECIAL when creating
  `ARRAY [attached STRING]' because `attached STRING] does not have a default value, the hack
  is to change the type of the ARRAY to `ARRAY [detachable STRING]' which will fill the
  `SPECIAL [attached STRING]' with `Void' (this is the hack) and then we will fill the SPECIAL
  with attached value and when this is done, we revert the type of the ARRAY to
  `ARRAY [attached STRING]'.


Revision 78927 - Directory Listing
Modified Thu May 28 22:48:59 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed issue with void-safe version of SPECIAL where `spclone' would not copy `source' only
  initialize the fields but because `count' would most likely not 0, we need to wipe out
  its content. This happens if during a `deep_twin' a GC cycle occurs.


Revision 78840 - Directory Listing
Modified Fri May 22 20:47:31 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed a memory corruption of TUPLES where we need to clear all the memory of the TUPLE when
  `egc_has_old_special_semantic' is not set.
Fixed a bug in equal for SPECIAL because we were comparing the whole RT_SPECIAL_PADDED_DATA_SIZE
  whereas only `count', `element_size' and `capacity' should have been compared, now
  we use RT_SPECIAL_DATA_SIZE when we want to compare those attributes.
Fixed a bug in `eif_gen_has_default' where it would report False for non-generic expanded classes.


Revision 78824 - Directory Listing
Modified Thu May 21 16:44:18 2009 UTC (10 years, 6 months ago) by jfiat
Original Path: trunk/Src/C
Support new design for SPECIAL (with count and capacity)

Revision 78816 - Directory Listing
Modified Thu May 21 05:31:18 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Added support creating a SPECIAL instance via `make_filled'.


Revision 78803 - Directory Listing
Modified Wed May 20 17:22:06 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Optimized conversions from natural to reals by providing a macro rather than providing a function.


Revision 78800 - Directory Listing
Modified Wed May 20 17:03:40 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Use proper OS name and architecture name for iPhone.


Revision 78790 - Directory Listing
Modified Wed May 20 06:52:48 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Added initial configuration for iphone port.


Revision 78727 - Directory Listing
Modified Sat May 16 00:30:26 2009 UTC (10 years, 6 months ago) by davids
Original Path: trunk/Src/C
VMS: force getcwd() to return Unix format

Revision 78722 - Directory Listing
Modified Fri May 15 22:51:46 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
New runtime that implements the added hidden `capacity' attribute in SPECIAL, increasing the number of
  hidden attributes to 3 in addition of `count' and `element_size'.
Made the runtime able to handle both the old SPECIAL representation in store/retrieve and also it supports
  two semantic: like before where `count' is always equal to `capacity' and the new one where `count' is
  less than `capacity' useful for void-safety.
Removed non-used retrieval code `irt_make', `irt_nmake' and `object_read' which have been replaced by the
  recoverable storable.
Simplified implementation of `arycpy' since it is always called to grow at the upper bound, never at the
  lower bound.
Increased versioning for storables for general and independent store.


Revision 78720 - Directory Listing
Modified Fri May 15 22:41:02 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Added `eif_gen_has_default' which helps implement {TYPE [G]}.has_default.


Revision 78716 - Directory Listing
Modified Fri May 15 21:18:33 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Removed `sp_count' and `sp_elem_size' since now we use RT_SPECIAL_COUNT and RT_SPECIAL_ELEM_SIZE instead.


Revision 78715 - Directory Listing
Modified Fri May 15 21:06:07 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Extended to support `attached' and `detachable' keywords when constructing a type from the runtime.


Revision 78676 - Directory Listing
Modified Wed May 13 22:48:56 2009 UTC (10 years, 6 months ago) by davids
Original Path: trunk/Src/C
correct syntax error: #if define(HAS_TIMES) --> #if defined(HAS_TIMES)

Revision 78649 - Directory Listing
Modified Tue May 12 21:24:22 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Simplified SPECIAL management macros to remove the _WITH_INFO and _WITH_ZONE macros.
Updated the code accordingly. 


Revision 78632 - Directory Listing
Modified Mon May 11 23:52:36 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Revisited SPECIAL accesses to hidden data `count' and `element_size'. Now it is all done via macros
  now defined in `eif_macros.h' (they used to be hidden in `rt_macros.h'). Updated the code generation
  so that it is easy to change runtime without changing the code generation since we use macros instead
  of hard coded constants.


Revision 78628 - Directory Listing
Modified Mon May 11 23:47:27 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Removed non-needed header file since included indirectly by `rt_macros.h'.


Revision 78620 - Directory Listing
Modified Mon May 11 21:47:39 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Added () around assignmnet in while loop to avoid C warning.


Revision 78607 - Directory Listing
Modified Mon May 11 17:26:34 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Removed non-needed header file since included indirectly by `rt_macros.h'. 


Revision 78606 - Directory Listing
Modified Mon May 11 17:24:44 2009 UTC (10 years, 6 months ago) by manus
Original Path: trunk/Src/C
Removed non-needed header file since included indirectly by `rt_macros.h'.


Revision 78591 - Directory Listing
Modified Sat May 9 00:46:46 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
Fixed missing tag in I/O exception which might occur when sending data fails for some reason.


Revision 78497 - Directory Listing
Modified Mon May 4 20:45:23 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
File existence for large file has been extended to Linux as well since this occurs on this platform.


Revision 78454 - Directory Listing
Modified Thu Apr 30 16:33:20 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
Added deletion of manifest files generated on 32-bit by VS 2005.


Revision 78447 - Directory Listing
Modified Wed Apr 29 22:00:57 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#expanded008 and bug#15693 where if you have an expanded objects that has references
  those references are not updated by the GC when the expanded object is allocated on the C stack.
Renamed EO_C to EO_STACK to really show that the allocation is on stack.
Fixed `eif_is_nested_expanded' to take EO_STACK into account.
Added `c_stack_object_set' which is used to unmark marked object with the EO_STACK flag.
Fixed some non-verification of return value of `epush' and added FIXME to the other non-verified places.
Cosmetics, added assertions.
Removed RTIE which was not used anymore.


Revision 78293 - Directory Listing
Modified Fri Apr 17 15:52:47 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
Fixed an issue found with except027 when reducing the default stack size. What happened is that when
  a thread generates a stack overflow the signal handler does not execute properly because it is done
  on the same stack. The call to `sigaltstack' has to be done for every threads.


Revision 78242 - Directory Listing
Modified Tue Apr 14 23:18:23 2009 UTC (10 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: fix 64 bit pointer issues in eifrt_vms_directory_file_name()

Revision 78239 - Directory Listing
Modified Tue Apr 14 23:09:40 2009 UTC (10 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: call access() directly in eif_dir_is_readable, _writable, _executable - it handles UNIX filespecs.
VMS: comment out obsolete readdir package jackets (controlled by MY_VMS_WRAPPERS macro) - I think VMS_JACKETS handles the issues now.

Revision 78221 - Directory Listing
Modified Mon Apr 13 17:54:49 2009 UTC (10 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: remove duplicate entry for memory_analyzer in several places, and unused NETWORK definition.

Revision 78220 - Directory Listing
Modified Mon Apr 13 17:53:10 2009 UTC (10 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: remove wrapper definitions for i18n functions (iconv, iconv_open, iconv_close, setlocale) now defined in eif_vmsdef.h)

Revision 78212 - Directory Listing
Modified Mon Apr 13 06:08:32 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#thread002 by redesigning the way a parent thread shares its mutexes for knowing how
  many children are still alive. The way it is now done is that each thread has a context of type
  `rt_thr_context' which is shared with its immediate children. If a thread terminates, then it frees
  its context only if there are no immediate children still running. If any are still running, then the last
  one running will be responsible to reclaim the allocated memory of the parent thread.
By having a context, we can avoid duplication of certain data that was both in the per thread data and the
  context structure.


Revision 78203 - Directory Listing
Modified Fri Apr 10 23:56:07 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
Fixed another problem highlighted by eweasel test#thread008 on 64-bit platform where because we did not
  include a definition of `find_referers' in `eif_built_in.h' the 64-bit pointer was truncated to 32-bit.


Revision 78200 - Directory Listing
Modified Fri Apr 10 23:29:06 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
Fixed incorrect comment about `timeout' which is actually in milliseconds, what we wanted to say
  was that we wanted to extracts seconds from `timeout'.


Revision 78196 - Directory Listing
Modified Fri Apr 10 22:34:31 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#thread007 and bug#13733 where in `eif_thr_wait' we forgot to unprotect
  `thread_object' in case no children thread have been launched yet. As a consequence when
  returning from the call to THREAD.join, the GC is keeping a reference to the C stack which
  is not valid and will cause in addition of a memory leak a potential memory corruption.


Revision 78193 - Directory Listing
Modified Fri Apr 10 22:13:02 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#thread008 and bug#14470 where `find_referers' would return incorrect information
  in multithreaded mode because we forgot to protect the object before synchronization.


Revision 78189 - Directory Listing
Modified Fri Apr 10 21:41:20 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
Cosmetics.


Revision 78181 - Directory Listing
Modified Fri Apr 10 16:07:41 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
Removed of BC_INSPECT opcode since now we use BC_POP to remove an element from the stack.
Improved macros SAVE/RESTORE in interp.c and use it for other type of stacks.
Fixed eweasel test#melt012 by changing the processing of inspect instruction, the issue is that
  we only popped the value of the expression after completion of the inspect, but in case of
  an exception being raised in one of the branches of the inspect, then the interpreter stack
  would be off by one and causing a memory corruption. Now, once a branch is matched, we pop
  the inspect switch expression. In the code generation, we also have to pop when none of the
  when clauses are matched.
Cosmetics.


Revision 78163 - Directory Listing
Modified Fri Apr 10 00:47:31 2009 UTC (10 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: make iconv wrapper 64-bit capable (VMS iconv implementation only supports 32 bit pointers)

Revision 78142 - Directory Listing
Modified Thu Apr 9 06:52:23 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
Do not use the TLS optimization on Windows anymore because it prevents the inclusion of Eiffel object
  files in DLLs. There is a minor performance loss of about 2.5% when measuring the time to compile
  EiffelStudio using ec.exe which is not too bad since it makes things easier for the end user.


Revision 78141 - Directory Listing
Modified Thu Apr 9 00:39:36 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
My testing shows that `c_opush' and `c_opop' is not necessary, especially since the cop_stack is created
  at the first call to the Eiffel creation procedure. It was added in rev#60616 but no real explanation
  on a concrete example where it would fail.


Revision 78140 - Directory Listing
Modified Thu Apr 9 00:34:37 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
Cosmetics.


Revision 78139 - Directory Listing
Modified Thu Apr 9 00:31:25 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
Removed usage of `;' in EIF_GET_CONTEXT since it causes a C compilation error on Windows.


Revision 78138 - Directory Listing
Modified Thu Apr 9 00:23:28 2009 UTC (10 years, 7 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#melt092 where if an exception occurred while evaluating an agent that was created
  in melted code, it would mess up the interpreter stack. The fix was that `dynamic_eval' needed to now
  how many pushed elements were present, so that in case of an exception it can pop them out of the stack.
Prevented a memory leak fix in case an agent evaluation causes an exception before being evaluated by 
  `dynamic_eval' it would not free the protected variables. 
In addition of the fix, there was some cleanup done:
- simplified content of `dynamic_eval_dbg' to avoid repetition with `dynamic_eval'. Updated `dynamic_eval_dbg'  callers accordingly
- removed unused variables `saved_scur' and `saved_stop'.
- removed `rout_obj_call_function' which hasn't been used for ages.


Revision 78137 - Directory Listing
Modified Wed Apr 8 22:37:31 2009 UTC (10 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: definitions for eif_getenv and eif_getenv_native (see misc.c)

Revision 78135 - Directory Listing
Modified Wed Apr 8 22:34:59 2009 UTC (10 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: add feature test macros; integer sizes for 3 known VMS platforms (Alpha, IA64, VAX)

Revision 78134 - Directory Listing
Modified Wed Apr 8 22:32:44 2009 UTC (10 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: update pragma version string for 6.3 and platform pointer size

Revision 78133 - Directory Listing
Modified Wed Apr 8 22:31:28 2009 UTC (10 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: update VMS Makefiles (for 6.3)

Revision 78121 - Directory Listing
Modified Tue Apr 7 23:40:17 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Removed non-used local.


Revision 78083 - Directory Listing
Modified Sun Apr 5 05:24:23 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Simplified implementation profiling on various platforms by having the same unit and same storage type
  for all. Unit is nanoseconds. Type is unsigned natural 64-bit. This solves some overflow we could have
  if profiling lasted for too long.
Kept 10e-6 precision rahter than 10e-2.


Revision 78082 - Directory Listing
Modified Sun Apr 5 05:21:51 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed incorrect comment.


Revision 78081 - Directory Listing
Modified Sun Apr 5 05:19:59 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#exec311 for profiler not working in melted mode when checking invariant because we
  forgot to call `start_profile' at the beginning of the invariant evaluation.
Fixed eweasel test#melt091 where if an Eiffel string is created in workbench mode and STRING has been
  melted it would crash because we forgot to restore the IC.


Revision 78045 - Directory Listing
Modified Thu Apr 2 06:28:14 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Removed special handling of objects with the EO_C  flags when manipulating Eiffel objects since EO_C
  simply means an Eiffel object that cannot move but it is still an Eiffel object. Fixed `traversal'
  to allow processing an expanded object directly when it is the top object, but not when it is a
  recursive attribute since the parent object has already been processed.
  This solves eweasel test#exec300 and test#store022. It should also fix test#exec266 but even though it now
  passes on Windows, it is still failing on Linux.


Revision 78043 - Directory Listing
Modified Thu Apr 2 05:10:57 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed DEBUG clause that did not do what they were supposed to do since `nb_full' and `nb_partial' are not
 0 or 1 but they increment indefinitely. Instead force `fdone' to be `1' when starting a full collection
 and 0 at the end.


Revision 78041 - Directory Listing
Modified Thu Apr 2 00:53:05 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed bug#14567 where if we have more than 2^(32|64) GC cycles we end up with a division by 0 while
  calculating the statistics of the GC. When overflow occurs, the statistics are less meaninful but
  not that inacurate if the system is stable which is what you would expect from a system that had
  that many collections.
Prevented this as well as statistics overflow during statistic computation.


Revision 78028 - Directory Listing
Modified Wed Apr 1 20:21:54 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#exec298 and bug#13862 where the display of NATURAL_32, NATURAL_16 and NATURAL_8 was
  using %d instead of %u causing -1 to be displayed instead of the value of "2^32 - 1".


Revision 78022 - Directory Listing
Modified Wed Apr 1 19:51:03 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Cosmetics.


Revision 78021 - Directory Listing
Modified Wed Apr 1 19:47:12 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed tiny performance issue because comparing `(num - cap) <= 0' when both are unsigned integer
  and that num is less than cap does not yield true. Fixes bug#14495.


Revision 78019 - Directory Listing
Modified Wed Apr 1 18:47:25 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed bug#14497 and bug#14477 along with eweasel test#exec310 because we used the %s formatter
  to put string in `buffero' but `buffero' is limited in size, so if you have a very long attribute
  name or class name sprintf would perform a buffer overflow and corrupt the memory. To solve
  that never use %s but instead use `write_string' and still use sprintf and buffero but only for
  writing data type for which we know it is guaranteed to never overflow (however the ideal solution
  would be to not depend on sprintf).
Removed `simple_out' and the non-used cases in `inspect' as if they had been used it would have
  crashed since calling `free' was incorrect because the memory is not allocated using `malloc'.


Revision 78008 - Directory Listing
Modified Tue Mar 31 23:04:35 2009 UTC (10 years, 8 months ago) by paulb
Original Path: trunk/Src/C
Fixed issue when HOME variable is not set on some *nix platforms.


Revision 77956 - Directory Listing
Modified Sat Mar 28 21:48:07 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#exec151 where if you have an exception occuring while going back and forth in the
  call stack with C and melted routine, the melted operation stack would be messed up. The issue is that
  when going from C to melted we push arguments to the stack, but if we have an exception those arguments
  are not removed and when going back to melted code, it unwinds the stack from the wrong location.


Revision 77942 - Directory Listing
Modified Fri Mar 27 16:07:30 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Added builtin for vxworks support.


Revision 77933 - Directory Listing
Modified Fri Mar 27 03:35:03 2009 UTC (10 years, 8 months ago) by tedf
Original Path: trunk/Src/C
Renamed `c_in_rescue' to `eif_is_in_rescue' to follow the convention.

Revision 77910 - Directory Listing
Modified Thu Mar 26 05:14:00 2009 UTC (10 years, 8 months ago) by tedf
Original Path: trunk/Src/C
Implementation of `{EXCEPTION}.cause' on ISE side, including the runtime and {ISE_EXCEPTION_MANAGER}.

Revision 77908 - Directory Listing
Modified Thu Mar 26 04:15:52 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#except035 by manually raising an exception if on Solaris based OS we read EOF
   and the file is either stdout or stderr. Other platforms remain unchanged.


Revision 77856 - Directory Listing
Modified Mon Mar 23 19:59:14 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Added a new builtin for IDENTIFIED_ROUTINES.eif_is_object_id_of_current which is going to be used
  in the postcondition of `eif_current_object_id'.


Revision 77841 - Directory Listing
Modified Sat Mar 21 06:38:12 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Added `eif_reference_id' which is the same as `eif_object_id' but takes a EIF_REFERENCE rather than a
  EIF_OBJECT.
Added builtin for IDENTIFIED_ROUTINES.eif_current_object_id to map to `eif_reference_id'.


Revision 77839 - Directory Listing
Modified Sat Mar 21 05:46:32 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel tests test#melt070, test#melt081, test#term139, test#store014 and test#tuple006 failures
  on solaris-x86-64 due to a bug in the Sun C compiler optimization with switch expressions being
  reevaluated when it should not for checking all the possible cases, solution is to store the expression
  in a local.


Revision 77838 - Directory Listing
Modified Sat Mar 21 04:23:32 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
With new processing of signal that reinstate the signal when signal handler is called, we could  get
  into an infinite loop if `print_err_msg' triggers an exception. This fixes the issue where eweasel
  test#vsrp208, although it was passing, ec  was still using 100% CPU.


Revision 77835 - Directory Listing
Modified Fri Mar 20 21:35:02 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#except029 on Solaris platforms. The issue was our mix of using `sigaction' and 
  `sigaltstack' to catch stack overflow error with SIGSEGV and still using `signal' to restore the
  signal handler when a signal occurs.
The fix also gets rid of a race condition by using sigaction with the SA_NODEFER flag by ensuring
  the signal handler is not reset when receiving a signal.
Updated Configure script and various platform configuration to find out if `sigaction' is available
  or not.


Revision 77829 - Directory Listing
Modified Fri Mar 20 16:42:49 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed a bug with exception generated during the evaluation of a once in melted mode because the 
  jmp_buf we were using to perform the longjmp was properly initialized on the stack but once
  initialized it was going out of scope and its value was corrupted. Now the jmp_buf is stored
  as part of the locals of `interpret' and this solves eweasel test#except014 and test#except030
  which were failing with a debugged runtime.


Revision 77821 - Directory Listing
Modified Fri Mar 20 05:10:45 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Forgot to update bytecode reader when we added the boolean modifiers for runtime catcall checking.


Revision 77810 - Directory Listing
Modified Thu Mar 19 21:50:54 2009 UTC (10 years, 8 months ago) by davids
Original Path: trunk/Src/C
VMS: update makefiles (for 6.3)

Revision 77724 - Directory Listing
Modified Mon Mar 16 04:15:58 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Use version 1.0.11 of MSYS which seems to solve an issue with Windows Vista 64-bit.


Revision 77667 - Directory Listing
Modified Mon Mar 9 22:34:41 2009 UTC (10 years, 8 months ago) by manus
Original Path: trunk/Src/C
Removed non-used preprocessor branches using CONCURRENT_EIFFEL since it is never used.


Revision 77439 - Directory Listing
Modified Sun Mar 1 23:56:26 2009 UTC (10 years, 9 months ago) by manus
Original Path: trunk/Src/C
Fixed various issues with manipulating SPECIAL objects of a real size greater than 4GB:
- code generation for SPECIAL access could read/write to wrong index.
- {SPECIAL}.aliased_resized_area, {SPECIAL}.clear_all and all the intra/inter SPECIAL copy operations
- {ANY}.deep_twin, {ANY}.deep_copy and {ANY}.deep_equal when one of the object of the graph is a large SPECIAL
- equality and copy/twin of two large SPECIAL would not be reliable.
- initialization of SPECIAL with an expanded actual generic parameter
- storing and retrieving of SPECIAL.
- creation of manifest arrays of expanded whose size is greater than 4GB (very unlikely but it could happen)


Revision 77437 - Directory Listing
Modified Sat Feb 28 19:28:14 2009 UTC (10 years, 9 months ago) by manus
Original Path: trunk/Src/C
Fixed missing definition of `ei_size' from eif_internal.h causing C compilation warning.


Revision 77410 - Directory Listing
Modified Fri Feb 27 18:09:16 2009 UTC (10 years, 9 months ago) by jfiat
Original Path: trunk/Src/C
Change in debugger IPC protocol:
 - now the eiffel debugger also get the nested index (not yet used, but soon)
 - the thread id are sent as pointer instead of integer


Revision 77273 - Directory Listing
Modified Mon Feb 23 22:30:24 2009 UTC (10 years, 9 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#conform008 because in `eif_attached_type' we had forgotten the case of handling
  a TUPLE type which was properly done in `eif_non_attached_type'.


Revision 77105 - Directory Listing
Modified Wed Feb 11 01:29:42 2009 UTC (10 years, 9 months ago) by tedf
Original Path: trunk/Src/C
Fixed bug#15280 and eweasel test#except034 that {EXCEPTION_MANAGER}.last_exception not cleared after successful retry if melted.

Revision 76945 - Directory Listing
Modified Mon Feb 2 23:02:06 2009 UTC (10 years, 10 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#attach047 where type of array of string passed as argument to the creation procedure
  of the root class should have an attached actual argument type.


Revision 76925 - Directory Listing
Modified Sat Jan 31 20:41:33 2009 UTC (10 years, 10 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#runtime011 where one could get a memory corruption when somehow the SPECIAL target
  size is actually smaller than the source size even though they have the same number of items. This bug
  was highlighted when we disallow object of 0 size in the GC at rev#76313.


Revision 76902 - Directory Listing
Modified Fri Jan 30 16:59:13 2009 UTC (10 years, 10 months ago) by manus
Original Path: trunk/Src/C
Added `is_discarding_attachment_makrs' option to storable so that runtime always generate storables that
  can be understand by 6.2 or older.


Revision 76901 - Directory Listing
Modified Fri Jan 30 16:53:27 2009 UTC (10 years, 10 months ago) by manus
Original Path: trunk/Src/C
Just added a check statement to show that `cid_array' is properly initialized as otherwise it could
  mess up things.


Revision 76869 - Directory Listing
Modified Wed Jan 28 20:13:27 2009 UTC (10 years, 10 months ago) by manus
Original Path: trunk/Src/C
Improved mismatch between attached types and detachable ones. The issue was found when we changed the compiler
  so that `?like Current' actually meant detachable for type purposes and it broke eweasel test#store020
  because before we stored `like Current' and now `?like Current' thus a mismatch which should not occur
  since no attachment mark means detachable. The table now looks like
  	    old	-> attached | detachable
	new
	 |
	attached       1          0
	detachable     1          1


Revision 76723 - Directory Listing
Modified Fri Jan 16 06:13:54 2009 UTC (10 years, 10 months ago) by tedf
Original Path: trunk/Src/C
- Use ENABLE_STEP_THROUGH instead of DEBUG to control the ability stepping in EiffelStudio.
- Correct the usage of EIF_OS_VXWORKS.

Revision 76701 - Directory Listing
Modified Thu Jan 15 06:45:32 2009 UTC (10 years, 10 months ago) by tedf
Original Path: trunk/Src/C
- Removed WORKBENCH for DISCARD_BREAKPOINTS/UNDISCARD_BREAKPOINTS, since it has been handled within these macros. Use #ifndef DEBUG instead for debugging purpose, when we don't want to discard breakpoints.
- Made the files compilable with DEGUG defined.
- Use EIF_OS_VXWORKS instead of the obsolete VXWORKS. Add "! defined (EIF_WINDOWS)" to exclude windows, since SIGUSR1 and SIGUSR2 signals do not exist on windows.

Revision 76678 - Directory Listing
Modified Wed Jan 14 16:30:52 2009 UTC (10 years, 10 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#store020 where our recoverable store mechanism could not retrieve an object
  if it was generic and using a formal as actual generic parameter in a generic derivation using an
  expanded type. This is because in 6.2, we decided not to perform the instantiation of the attribute
  as it was not working properly when generic derivation is a generic expanded type.
  For the time being, if there is a mismatch where expected type is a FORMAL_TYPE, we try to instantiate
  it in the current processed type and if there is a match then we know it is ok, otherwise we
  reject the code.
  This also fixes bug#15256.


Revision 76527 - Directory Listing
Modified Thu Jan 1 01:28:08 2009 UTC (10 years, 11 months ago) by manus
Original Path: trunk/Src/C
Cosmetics.


Revision 76392 - Directory Listing
Modified Thu Dec 25 00:50:02 2008 UTC (10 years, 11 months ago) by manus
Original Path: trunk/Src/C
Added a new test for checking proper contiguousity of overhead and data for the new expanded structure.


Revision 76378 - Directory Listing
Modified Wed Dec 24 18:46:02 2008 UTC (10 years, 11 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#exec293 to ensure we detect a call on Void target when using a tuple label access
  and the tuple is void. Fixes bug#15177 and bug#12354.


Revision 76373 - Directory Listing
Modified Wed Dec 24 16:46:47 2008 UTC (10 years, 11 months ago) by manus
Original Path: trunk/Src/C
Added missing default case to catch possible corruptions. Fixes bug#14689.


Revision 76328 - Directory Listing
Modified Mon Dec 22 22:14:13 2008 UTC (10 years, 11 months ago) by manus
Original Path: trunk/Src/C
Sometime the compiler generates incorrect parent information adding some annotation in the types
  which does not make sense. For the time being we simply skip this information.


Revision 76313 - Directory Listing
Modified Sat Dec 20 00:58:07 2008 UTC (10 years, 11 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#runtime010 by preventing allocations that could create a 0-sized object. This
  prevention is done in 2 places: `allocate_free_list' for new blocks and `xrealloc' for blocks
  resizing. And the other modifications have to do with making sure that when comparing or copying
  objects we only compare/copy the meaningful data, not the possible extra allocated memory. We
  also had to make sure that the data at the end of the SPECIAL is moved when resized.


Revision 76312 - Directory Listing
Modified Sat Dec 20 00:05:00 2008 UTC (10 years, 11 months ago) by manus
Original Path: trunk/Src/C
Added some new contracts that can be useful when debugging runtime.


Revision 76296 - Directory Listing
Modified Thu Dec 18 22:42:33 2008 UTC (10 years, 11 months ago) by manus
Original Path: trunk/Src/C
Reimplemented ~ operator so that it uses `is_equal' and not `equal'. It makes code of course slightly
  faster but also avoids useless duplication of expanded objects.
  This is a breaking change that requires bootstrapping.


Revision 76284 - Directory Listing
Modified Thu Dec 18 19:33:32 2008 UTC (10 years, 11 months ago) by manus
Original Path: trunk/Src/C
Added a potential built_in for {ANY}.is_equal.


Revision 76138 - Directory Listing
Modified Thu Dec 11 19:47:49 2008 UTC (10 years, 11 months ago) by manus
Original Path: trunk/Src/C
Fixed mismatch sign/unsigned comparison causing some code path not to be executed when they should. It
  was discovered when using EiffelNet and the other party crashed, as a result `char_read_function' returns
  -1, but was incorrectly converted into 0xFFFFFFFF which was clearly wrong.


Revision 76076 - Directory Listing
Modified Fri Dec 5 00:06:10 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
We now switch to 6.4 release mode.


Revision 76069 - Directory Listing
Modified Thu Dec 4 17:20:07 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
Updated scripts so that DLLs are built for all platforms (before it was not building on 64-bit
  because we changed W3 into W4).


Revision 76052 - Directory Listing
Modified Wed Dec 3 17:31:30 2008 UTC (11 years ago) by alexk
Original Path: trunk/Src/C
Avoided result creation in wrappers of attributes (this fixes test#exec035).

Revision 75885 - Directory Listing
Modified Tue Nov 25 01:24:37 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
Added new built_ins for MEMORY.


Revision 75883 - Directory Listing
Modified Tue Nov 25 01:13:38 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
Reorganized by alphabetical order.


Revision 75856 - Directory Listing
Modified Sat Nov 22 00:56:54 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
Added more builtins for INTERNAL and ISE_RUNTIME that way we can pass directly the Eiffel object
  to the C external without the need to use $ and without protecting the object.


Revision 75854 - Directory Listing
Modified Sat Nov 22 00:02:27 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
Fixed incorrect macro definition of `eif_character_32_tuple_item' which only affected the runtime, not
  the user code.


Revision 75848 - Directory Listing
Modified Fri Nov 21 17:54:34 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
Added built_in for `count' from TUPLE.


Revision 75847 - Directory Listing
Modified Fri Nov 21 17:54:12 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#attach033 where if the type did not exist, we were returning 0x0000FFFF instead of -1.


Revision 75836 - Directory Listing
Modified Fri Nov 21 12:37:25 2008 UTC (11 years ago) by alexk
Original Path: trunk/Src/C
Fixed BC_IS_ATTACHED to avoid calculating the type as a creation one as the latter removes the attachment mark which is the corner stone of this evaluation.

Revision 75835 - Directory Listing
Modified Fri Nov 21 12:35:19 2008 UTC (11 years ago) by alexk
Original Path: trunk/Src/C
Provided an implementation for a macro that is used to figure out if the given type is attached at run-time.

Revision 75805 - Directory Listing
Modified Thu Nov 20 17:53:31 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
A while back we removed `has_object' in object_id.c and replaced it by using `st_has' from garcol.c,
  but we forgot to update the expensive assertions here.


Revision 75800 - Directory Listing
Modified Thu Nov 20 16:46:46 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
Removed useless usage of EIF_GET_CONTEXT since now we do not use `eif_stack' anymore.


Revision 75799 - Directory Listing
Modified Thu Nov 20 16:45:03 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
Previous commit forgot to remove one call to `expop(eif_stack)' causing a stack corruption as soon
  as storable is used.


Revision 75795 - Directory Listing
Modified Thu Nov 20 07:02:12 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
Fixed an issue with not restauring the marking mutex in case an exception occurs in `internal_store'. The
  issue was found when the call to flush_buffer failed because of a SIGPIPE error when runing autotest.


Revision 75758 - Directory Listing
Modified Wed Nov 19 16:46:59 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
Cosmetics.


Revision 75757 - Directory Listing
Modified Wed Nov 19 16:46:47 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
Added support for attachment mark in type specification, it fixes eweasel test#attach033.


Revision 75658 - Directory Listing
Modified Mon Nov 17 00:40:29 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
Fixed a bug in `attribute_type_matched' where the loop to check the annotation flags was incorrect
  causing an infinite loop. It fixes eweasel test#store017. Also rewrote the end of loop conditional
  as we should stop as soon as there is a mismatch in annotation flags.


Revision 75608 - Directory Listing
Modified Fri Nov 14 19:37:39 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
Fixed incorrect precondition.


Revision 75601 - Directory Listing
Modified Fri Nov 14 18:47:02 2008 UTC (11 years ago) by alexk
Original Path: trunk/Src/C
Provided built-in implementation of the features `twin' and `standard_twin' by run-time as external routines so that there is no issue with void-safe implementation of them in class ANY anymore.

Revision 75577 - Directory Listing
Modified Fri Nov 14 00:38:49 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
Fixed a bug which was highlighted by catching catcall checking on attached types. We were passing
 0xFFFF instead of constant NONE_TYPE to represent `Void'. Updated `eif_typename' to print NONE
 when NONE_TYPE is given.


Revision 75567 - Directory Listing
Modified Thu Nov 13 20:39:48 2008 UTC (11 years ago) by manus
Original Path: trunk/Src/C
Added support for attachment marks at runtime in actual generic parameters:
- Updated runtime to understand annotation marks in our type arrays and all routines for 
  creating types and handling conformance.
- To properly handle conformance, a new entry in the type arrays generated in eparents.c have been
  added, it stores whether or not a type is attached. That is to say A inherits B, and when we check if
  !A conforms to !B, we modify the type array so that it has the attachment mark.
- Increased storable version number as old systems cannot understand the marks.
- Fixed catcall detection at runtime which was not properly handling attached arguments (as before
  we only check catcalls for non-void argument, but it the argument is attached, then we need to
  check that it is indeed not Void.
- Changed the Eiffel code generation so that even if we asked to create !A, we actually create A
  (i.e. we remove the annotation as they do not make sense for the type of an object).
- Made sure that a generic descriptor is created for attributes whose type is an attached non-generic type
  as well as a non-explicit type (e.g. formal/anchors).


Revision 75481 - Directory Listing
Modified Fri Nov 7 22:49:29 2008 UTC (11 years ago) by fivaa
Original Path: trunk/Src/C
Fix from Jason for melting issue when running AutoTest. {ITP_INTERPRETER}.execute_byte_code no longer needs to be melted in order to run byte code.


Revision 75356 - Directory Listing
Modified Wed Oct 29 23:09:16 2008 UTC (11 years, 1 month ago) by fivaa
Original Path: trunk/Src/C
Integrated modified AutoTest implementation (many thanks to Jason!), changes include:

* New runtime routine eif_override_byte_code_of_body in $EIFFEL_SRC/C/run-time/interp.c
* Added auto_test library classes as a framework in $EIFFEL_SRC/framework/auto_test
* Added interpreter classes and erl_g constants to testing library in $EIFFEL_SRC/library/testing/generation/
* Console menu contains new entry for launching AutoTest, however for ecb that is only a dummy entry since the batch version is single threaded.

Current issues: {ITP_INTERPRETER}.execute_byte_code must be melted in order to run AutoTest. To do so, make sure testing library is not read only and then modify the routine by hand before launching auto test.


Revision 75353 - Directory Listing
Modified Wed Oct 29 22:12:34 2008 UTC (11 years, 1 month ago) by davids
Original Path: trunk/Src/C
VMS: optimum value for CHUNK_DEFAULT is slightly less than 4MB (because of overhead added by VMS malloc).

Revision 75291 - Directory Listing
Modified Mon Oct 27 18:52:37 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
Fixed incorrect reading of the new multiple roots byte code.
Cosmetics on `analyze_desc'.


Revision 75271 - Directory Listing
Modified Fri Oct 24 16:53:25 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
Fixed a tiny memory leak by making sure we free the memory allocated for holding the data of
  the root creation procedure selector.


Revision 75270 - Directory Listing
Modified Fri Oct 24 05:58:58 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
Removed `is_array' from EIF_GEN_DER since it was never used.


Revision 75267 - Directory Listing
Modified Thu Oct 23 22:29:28 2008 UTC (11 years, 1 month ago) by jfiat
Original Path: trunk/Src/C
Fixed issue with invariant violation. Now the debugger will correctly retrieve arguments and locals. 
And it will show "_invariant" stack in the call stack (and trace).
It should help understanding where the invariant is violated.

Revision 75236 - Directory Listing
Modified Tue Oct 21 17:52:59 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
Removed the need to use `RTUD', `RTUD_INV', `eif_id_for_typearr' and `egc_fdtypes' as it has
  been quite a few releases that now `static_type_id' is always the same as `type_id' in workbench
  mode. It should make workbench execution slightly faster (but this was not measured).


Revision 75198 - Directory Listing
Modified Mon Oct 20 23:48:42 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
Forgot to remove dead code since now we do not compute ancestor map anymore.


Revision 75197 - Directory Listing
Modified Mon Oct 20 23:13:46 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
Simplified code flow so that `type' is properly reported by simple C compiler as initialized as 
  we did: if (v) { ..} if (!v) { ...} else { ...}, where one could simply do if (!v) {...} else { ...}


Revision 75196 - Directory Listing
Modified Mon Oct 20 22:29:19 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
Removed BC_GEN_PARAM_CREATE since the compiler does not generate this byte code anymore. It was
  replaced by the same code that is used for finding out the type of anchors at runtime.


Revision 75169 - Directory Listing
Modified Fri Oct 17 22:27:50 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
Removed usage of RTID in generated code and run-time.
Removed generic conformance macros and directly use `eif_final_id', `eif_compound_id'
  and `eif_gen_param_id' in the generated C code.
Removed the `static type id' argument of most generic conformance routines because now we do not
  use it anymore and updated callers accordingly.
Improved `analyze' from CREATE_FEAT so that we use `dftype' instead of `Dftype (Current)' when
  generating code for a formal type.


Revision 75140 - Directory Listing
Modified Thu Oct 16 20:52:40 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
Removed the space between -K and pic so that the C++ compiler accepts this option properly.
  This solves eweasel test#ccomp054 and test#ccomp062.


Revision 75139 - Directory Listing
Modified Thu Oct 16 20:51:41 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
Removed -KPIC option and use -xcode=pic32 instead per the manual page recommendation since -KPIC
  is obsolete. This also solves eweasel test#ccomp054 and test#ccomp062.


Revision 75136 - Directory Listing
Modified Thu Oct 16 17:51:39 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
Removed usage of RTID macro since now it is useless. We still keep it in `eif_macros.h' so that 
  generated code still compiles.


Revision 75135 - Directory Listing
Modified Thu Oct 16 17:48:13 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
The macros RTID is not needed anymore in workbench mode.


Revision 75134 - Directory Listing
Modified Thu Oct 16 16:39:09 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
Performed `rebase -b 0x30000000 msys-1.0.dll' as very frequently it causes the program
  using this dll to fail allocating a heap (most of the time it is `make.exe'). This does
  not avoid the issue, but reduces the likelyhood to happen.


Revision 75116 - Directory Listing
Modified Wed Oct 15 19:49:08 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
Slight modification in the generic conformance code so that it uses much less memory. With
  EiffelStudio, we went from using 40MB of C memory down to 16MB and a minor speed improvement
  where we went from 111s down to 107s. The change is to never build the conformance table
  when computing the dynamic type of a generic class, the conformance table is only build when
  needed, i.e. object test/assignment attempts and explicit call to {ANY}.conforms_to.
  For this to work, we had to review the representation of formal generic parameters in a
  type description. Now we cannot use the "0xFFF8 + pos" when describing a type in workbench mode
  nor in finalized mode except if we can guarantee that it is always a formal in all its descendants.
  The reason is quite simple, if a descendant instantiate the generic type, then 0xFFF8 does not
  make sense anymore, previously we relied on the conformance table to find out the type of the formal
  in the descendant, now we actually rely on our TYPE_FEATURE_I (so far only used in .NET code
  generation) to get the type of a formal and for generating a type description of a FORMAL_A
  we use the same technique as the one used for anchors by using the CREATE_FORMAL_TYPE abstraction.
Fixed a few issues with the processing of TYPE_FEATURE_I so that their pattern_id is properly
  computed. And defined TYPE_FEATURE_I to be a function and properly implemented `new_rout_entry'
  so that it generates a FORMAL_ENTRY which is like a ROUT_ENTRY for which the type information is
  always generated in workbench mode. Also made sure that those TYPE_FEATURE_I are added
  to `system.rout_info_table' otherwise code generation simply does not work.
Minor refactor of SELECT_TABLE.add_units so that we can easily add the processing of TYPE_FEATURE_I
  for finalization without duplicating too much code.
Removed `bc_gen_param_create' opcode since not used anymore.
Removed `eif_gen_tuple_typecode_str' which was not used anymore.


Revision 75085 - Directory Listing
Modified Tue Oct 14 17:02:14 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
In rev#75038 we changed the format of melted code, but I forgot to update `meltdump.c' to take this into
  account. In the process, I've improved the printing of the parents table.


Revision 75082 - Directory Listing
Modified Tue Oct 14 12:07:18 2008 UTC (11 years, 1 month ago) by jfiat
Original Path: trunk/Src/C
Cosmetic in C code. (only cosmetic, no real changes)

Revision 75042 - Directory Listing
Modified Thu Oct 9 04:03:52 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
Removed non-used locals forgotten in commit rev#75038.


Revision 75038 - Directory Listing
Modified Wed Oct 8 23:31:11 2008 UTC (11 years, 1 month ago) by manus
Original Path: trunk/Src/C
Merged `struct cnode->cn_parents' with the data generated in `eparents.c'. That way
  we can save some space in the binary. To ensure that the parents generated in `eparents.c'
  can be used for invariant checking, we had to introduce the PARENT_TYPE_SEPARATOR constant
  that tells when the next parent starts.
Updated MAX_DTYPE to match the new value known by the compiler which is 0xFF00.


Revision 75020 - Directory Listing
Modified Wed Oct 8 04:58:54 2008 UTC (11 years, 2 months ago) by manus
Original Path: trunk/Src/C
Removed non-used locals.


Revision 75019 - Directory Listing
Modified Wed Oct 8 04:53:23 2008 UTC (11 years, 2 months ago) by manus
Original Path: trunk/Src/C
Instead of using the C runtime function to allocate memory, we use the Eiffel runtime one.
  The benefit is that we get memory accounting for the generic conformance code and in our
  benchmarks it also reduces the overall memory usage (133MB instead of 136MB) on Windows.
  It also seems to be slighly faster (less than 1%) on Linux when boostrapping the batch
  compiler.
The other modification was to get rid of the static structures when the data is small making
  the code simpler. No other effects are measured, that is to say we do not gain very much
  in memory usage.


Revision 74866 - Directory Listing
Modified Mon Sep 29 16:28:32 2008 UTC (11 years, 2 months ago) by manus
Original Path: trunk/Src/C
Refactored the code for simplification of the runtime type encoding code generation.
Fixed an issue where A [INTEGER], A [?INTEGER] and A [!INTEGER] would generate 3 different
  CLASS_TYPEs instances where one is enough since an expanded type is always attached.
Added support (but disabled it for the time being) for encoding the attachment mark in the
  runtime type encoding, this is done via {TYPE_A}.annotation_flags which currently always
  return 0.
Changed the way `eparents' is generated, instead of generating again the class name, we simply
  generate the type id and we use that `type_id' to get the class name via the `cn_generator' field
  of the `struct cnode' structure.


Revision 74814 - Directory Listing
Modified Wed Sep 24 21:16:54 2008 UTC (11 years, 2 months ago) by manus
Original Path: trunk/Src/C
Added builtin support for {SPECIAL}.base_address in classic mode.


Revision 74759 - Directory Listing
Modified Sun Sep 21 18:50:25 2008 UTC (11 years, 2 months ago) by alexk
Original Path: trunk/Src/C
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 74750 - Directory Listing
Modified Fri Sep 19 16:44:05 2008 UTC (11 years, 2 months ago) by fivaa
Original Path: trunk/Src/C
Separated root procedure part in emain. Determining the correct root procedure must be done after reading the melt file. However the root procedure argument must still be fetched before that.


Revision 74732 - Directory Listing
Modified Thu Sep 18 17:28:05 2008 UTC (11 years, 2 months ago) by manus
Original Path: trunk/Src/C
Made `eif_visible_is_off' public for the time being to avoid breaking changes.


Revision 74707 - Directory Listing
Modified Tue Sep 16 12:03:32 2008 UTC (11 years, 2 months ago) by tedf
Original Path: trunk/Src/C
- Fixed an issue reported in bug#14674, wrong MEM_FULL is used when MEM_FSTK should be used.
- Fixed a broken change which was a side effect of rev#74662. The change broke recipient name and class name of precondition violation.

Revision 74662 - Directory Listing
Modified Mon Sep 8 05:31:32 2008 UTC (11 years, 2 months ago) by tedf
Original Path: trunk/Src/C
For general effect of exception we print Fail in trace. Be more strict checking whether an exception is an assertion violation. Improved some comments. Fixed eweasel test except032.

Revision 74644 - Directory Listing
Modified Tue Sep 2 06:51:44 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed incorrect signature for private function introduced in previous commit.


Revision 74643 - Directory Listing
Modified Tue Sep 2 06:46:12 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed C compilation error on platforms not defining low level mutexes.


Revision 74642 - Directory Listing
Modified Tue Sep 2 06:45:00 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Removed unused locals `eif_globals' in multithreaded mode.


Revision 74632 - Directory Listing
Modified Fri Aug 29 16:19:59 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Slightly changed signature of `dbreak' by adding a `wait' argument. If we are asked to wait,
  we will wait until we get the debugger mutex lock. Otherwise if we fail to get the debugger
  mutex lock, we will simply not stop.
  This fixes bug#14760 where if the debugger is raising an exception during retrieval (which holds
  the GC mutex) and another thread already has the debugger mutex, we will simply deadlock. The
  only bad thing about this patch is that the exception won't be caught by EiffelStudio but it is
  better than deadlocking.


Revision 74631 - Directory Listing
Modified Fri Aug 29 16:12:38 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Added low level mutex trylock routines.


Revision 74620 - Directory Listing
Modified Thu Aug 28 19:13:03 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Removed `chmod' call that was making `eif_size.h' executable.


Revision 74553 - Directory Listing
Modified Mon Aug 25 22:25:50 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Match the flags used for compiling the C generated code of EiffelStudio on Windows, that is to say we use
  0x500 for both WINVER and _WIN32_WINNT.


Revision 74542 - Directory Listing
Modified Fri Aug 22 17:55:19 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Removed specific code for Windows in bitmask.h since it is never included on Windows
  we use the macro definition from the winsock header.


Revision 74538 - Directory Listing
Modified Fri Aug 22 17:19:17 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Added facility to enable and disable tracing when option is enabled in the ECF.
  This is a per thread setting, therefore each thead should call the new routines
  `enable_tracing'/`disable_tracing' depending on what they want.


Revision 74476 - Directory Listing
Modified Thu Aug 14 04:06:25 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Updated from Jmakefile change.


Revision 74475 - Directory Listing
Modified Thu Aug 14 04:05:14 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Added reference to `memory_analyzer.c' module.


Revision 74474 - Directory Listing
Modified Thu Aug 14 04:03:03 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed error where `memory_analyzer' module was always compiled for workbench mode.
Use alphabetical order to insert new memory_analyzer module in Makefile-win.sh.


Revision 74473 - Directory Listing
Modified Thu Aug 14 04:01:58 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed warnings about non-used locals in certain modes.


Revision 74472 - Directory Listing
Modified Thu Aug 14 03:13:28 2008 UTC (11 years, 3 months ago) by tedf
Original Path: trunk/Src/C
- Integrated "Back to Once" function in the Memory Analyzer. With this, people can construct object reference routes held by onces and analyze bad references.
- In order to achieve this, a function to get once objects is added in the runtime. 

Revision 74450 - Directory Listing
Modified Tue Aug 12 21:19:03 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Removed C++ dialect from last commit.


Revision 74424 - Directory Listing
Modified Tue Aug 12 00:58:02 2008 UTC (11 years, 3 months ago) by fivaa
Original Path: trunk/Src/C
Changed runtime, code generation and {SYSTEM_I} to support multiple root classes/features. For now adding additional root features is not possible through the configuration. However one can list the available root classes/features by appending -eif_root as the last argument of the generated executable.


Revision 74391 - Directory Listing
Modified Mon Aug 11 13:58:49 2008 UTC (11 years, 3 months ago) by tedf
Original Path: trunk/Src/C
- We now always print full trace up to root feature. Fixed test#except031 and bug#14548.
- Fixed garbage message from old violation.

Revision 74378 - Directory Listing
Modified Fri Aug 8 17:10:46 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed basic warnings raised  by Sun lint about variables being set but not used.


Revision 74377 - Directory Listing
Modified Fri Aug 8 16:52:51 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Added solaris lint flags. We do not use `errchk=%all' because it will reports error or even crash.


Revision 74376 - Directory Listing
Modified Fri Aug 8 15:54:20 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Updated Makefile.SH with new Jmake templates that has the `$lintflags' entry.


Revision 74375 - Directory Listing
Modified Fri Aug 8 15:35:08 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Added `lintflags' entry to configuration files.


Revision 74374 - Directory Listing
Modified Fri Aug 8 15:33:58 2008 UTC (11 years, 3 months ago) by manus
Original Path: trunk/Src/C
Added #ifdef WORKBENCH protection for C modules that are only included for the workbench runtime
  that way when compiled with `lint' in non-workbench mode, it compiles without error.


Revision 74359 - Directory Listing
Modified Wed Aug 6 21:26:23 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed a potential leak in `stream_malloc' when we can allocate `buffer' but not `real_buffer'.


Revision 74358 - Directory Listing
Modified Wed Aug 6 21:21:21 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed non-useful locals and corresponding assignments.


Revision 74307 - Directory Listing
Modified Thu Jul 31 19:56:55 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Reset `rt_globals' to NULL to really show that we cannot do anything with it.


Revision 74306 - Directory Listing
Modified Thu Jul 31 19:55:39 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#thread005 because in `eif_thr_exit' calling `eif_free_context' would actually
  perform some manipulation of the runtime memory while a GC might be happening causing some
  memory corruption. Now the call is done while we have synchronized the GC.
  The trick is that one cannot call `eif_unsynchronize_gc' at the end since the thread is emptied
  of all its allocated memory, therefore we directly unlock the GC mutex.


Revision 74301 - Directory Listing
Modified Thu Jul 31 18:15:03 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed message when we have reached the maximum amount of memory we are allowed to allocate as
  it messes up outputs.


Revision 74299 - Directory Listing
Modified Thu Jul 31 16:40:06 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Renamed `meminfo' into `eif_rt_meminfo' to avoid conflict with system one on Solaris.
Fixes bug#14680.


Revision 74281 - Directory Listing
Modified Wed Jul 30 04:01:19 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed warning about possibly returning `ip' without initializing it.


Revision 74278 - Directory Listing
Modified Tue Jul 29 22:37:28 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Only compute length of `line' in `extend_trace_string' only once.
Changed signature of `safe_Dtype' to take an EIF_REFERENCE since it only works on Eiffel Object.
Cosmetics.


Revision 74268 - Directory Listing
Modified Tue Jul 29 20:36:51 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Committed recent changes in Jmakefile about SOURCES.


Revision 74267 - Directory Listing
Modified Tue Jul 29 20:32:02 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed missing or duplicated SOURCES definition.


Revision 74265 - Directory Listing
Modified Tue Jul 29 20:10:19 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Updated Makefiles so that LINTFLAGS is defined (it required a change in the Jmake.tmpl file)
  and we merely regenerated them.


Revision 74264 - Directory Listing
Modified Tue Jul 29 20:09:23 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed warning from lint about an empty if clause body.


Revision 74249 - Directory Listing
Modified Tue Jul 29 05:01:54 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed useless file which was a copy of a very old Makefile.SH.


Revision 74248 - Directory Listing
Modified Tue Jul 29 04:57:18 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Forgot to add this new header file at the last commit (rev#74277).


Revision 74247 - Directory Listing
Modified Tue Jul 29 04:56:17 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed warnings reported by `sparse':
 - comparison or assignment of integer values to pointer types where NULL should be used.
 - missing `void' for declaration of argumentless routines.
 - missing prototype definition for all exported routines by either making the routines private
   or using the proper header file or adding a prototype.


Revision 74246 - Directory Listing
Modified Tue Jul 29 04:54:44 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Made sure that it compiles on Unix by protecting the windows specific code.


Revision 74245 - Directory Listing
Modified Tue Jul 29 04:51:21 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Made sure that it compiles on Unix by protecting the windows specific code.


Revision 74244 - Directory Listing
Modified Tue Jul 29 04:47:19 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Merged duplicated definition of `str_save' into `shword.c'.
Fixed `sparse' warning about using integer value instead of NULL.


Revision 74243 - Directory Listing
Modified Tue Jul 29 00:50:29 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Updated generated Makefile.SH to reflect new content of Jmakefile that does not reference `lock.c'
  anymore.


Revision 74242 - Directory Listing
Modified Tue Jul 29 00:48:31 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed `lock.c' since none of the defined routines are actually used by the runtime.


Revision 74241 - Directory Listing
Modified Tue Jul 29 00:44:55 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Updated windows makefile so that we do not include `date.c' anymore which does not exist anymore.


Revision 74240 - Directory Listing
Modified Tue Jul 29 00:37:35 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed sparse warnings.


Revision 74237 - Directory Listing
Modified Tue Jul 29 00:14:20 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed missing `void' for argumentless routines.


Revision 74236 - Directory Listing
Modified Tue Jul 29 00:02:22 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed `date.c' from the runtime build since code has been moved into an Eiffel C inline
  routine.


Revision 74235 - Directory Listing
Modified Mon Jul 28 23:59:28 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed `date' as this is not used anymore by our compiler (the code was moved
  into an Eiffel C inline routine.


Revision 74234 - Directory Listing
Modified Mon Jul 28 23:47:12 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed warnings reported by `sparse':
 - comparison or assignment of integer values to pointer types where NULL should be used.
 - missing `void' for declaration of argumentless routines.
 - missing prototype definition for all exported routines by either making the routines private
   or using the proper header file or adding a prototype.


Revision 74233 - Directory Listing
Modified Mon Jul 28 23:43:53 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed `esigvec' since it was not used in runtime.
Fixed warnings reported by sparse by adding prototype for `esignal' and making `esig' private.


Revision 74232 - Directory Listing
Modified Mon Jul 28 23:41:22 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed new_buffer_write which was not used by the runtime.


Revision 74231 - Directory Listing
Modified Mon Jul 28 23:40:33 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed run_long since it was never used in the run-time.
Changed public functions into private ones since only used in `run_idr.c' and also to remove
  warnings from sparse which doesn't a function definition without prototype.


Revision 74230 - Directory Listing
Modified Mon Jul 28 23:39:02 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed code between RECOVERABLE_SCAFFOLDING ifdef statement as it has never been used and new
  way to retrieve storable is fine.
Fixed sparse warnings.


Revision 74223 - Directory Listing
Modified Mon Jul 28 22:02:05 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed extern declaration in `ipc/app/app_proto.c' and use definition
  from `rt_debug.h' and `eif_out.h'.
Fixed various warnings from `sparse'.


Revision 74220 - Directory Listing
Modified Mon Jul 28 21:33:09 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Made it private to avoid warning generated by `sparse' but also to match the specification
  that said it should be private.


Revision 74218 - Directory Listing
Modified Mon Jul 28 21:12:06 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed incorrect ANSI definition of `find_from_space' and `update_memory_set'.


Revision 74165 - Directory Listing
Modified Wed Jul 23 20:04:09 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed bug#14561 where after EIF_THR_EXIT we need to call RTGC as otherwise we may use objects
  or allocate objects when a GC collection is happening.


Revision 74164 - Directory Listing
Modified Wed Jul 23 19:20:32 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed a buffer overflow issue with our alternate stack for handling signals. This has appeared
  when building the exception trace when receiving the signal (before it was done on request
  only), in `print_top' of `except.c' the `rout_name_buffer' was allocated on the stack but its
  end was going further than what we allocated for the stack thus corrupting existing memory.
  By allocating 4 times the expected size (on linux 64-bit it is 16384) we avoid the problem
  in our testing.


Revision 74152 - Directory Listing
Modified Wed Jul 23 01:26:13 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed valgrind error while running eweasel test#except016 because we are using
  `memcpy' when source/target are actually the same. We could do the test, but
  chose to use `memmove' instead.


Revision 74142 - Directory Listing
Modified Tue Jul 22 10:19:55 2008 UTC (11 years, 4 months ago) by tedf
Original Path: trunk/Src/C
- Added `safe_Dtype' for trace printing to ensure it does not crash the second time at trace printing when the original object has already been invalid. This fixed bug#14578 and test#except029.

Revision 74141 - Directory Listing
Modified Tue Jul 22 10:09:40 2008 UTC (11 years, 4 months ago) by tedf
Original Path: trunk/Src/C
- Exposed `ereturn' so that generated code can see it.
- Use `ereturn' instead of `oraise' to propagate the exception at the first time it gets raised by once routines. This fixed test#except030.

Revision 74096 - Directory Listing
Modified Thu Jul 17 00:22:54 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#runtime009 where an allocation in the free list does not always guarantee
  that the EO_NEW flag will be set. In some condition, when `moved_set' is full, we will clear
  the EO_NEW flag and set the object directly to EO_OLD. This is why in `sprealloc' we need
  to check for both `EO_NEW' and `EO_OLD' otherwise we will fail to update the content of the
  special after a GC cycle.


Revision 74092 - Directory Listing
Modified Thu Jul 17 00:04:41 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed warning about loss of data when converting `size_t' to `int', now we simply use `size_t'.


Revision 74088 - Directory Listing
Modified Wed Jul 16 21:25:10 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#runtime008 where we have a leak on each created thread if invariants are monitored.


Revision 74054 - Directory Listing
Modified Thu Jul 10 16:53:15 2008 UTC (11 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added a cast to ensure that `eif_globals' can compile properly in C++ mode.


Revision 74050 - Directory Listing
Modified Thu Jul 10 05:37:18 2008 UTC (11 years, 4 months ago) by tedf
Original Path: trunk/Src/C
- Fixed bug#14543, where there was actually a runtime crash when raising an invariant violation. See test#except028. This was because we stored assertion violation info as normal exception info, due to the way how we catch once exceptions. For once exceptions, we backtrack twice. In the second time, we already leave the `in_assertion' context. In this case, we check the type of code of exceptions.
- Cosmetics

Revision 73977 - Directory Listing
Modified Mon Jun 30 23:36:01 2008 UTC (11 years, 5 months ago) by manus
Original Path: trunk/Src/C
Addressed bug#14532 by removing a useless check since it is always True.


Revision 73976 - Directory Listing
Modified Mon Jun 30 23:30:02 2008 UTC (11 years, 5 months ago) by manus
Original Path: trunk/Src/C
Fixed bug#14531 where we incorrectly check the presence of the B_BUSY flag (assigning it instead of checking
  for it).


Revision 73926 - Directory Listing
Modified Tue Jun 24 04:06:32 2008 UTC (11 years, 5 months ago) by tedf
Original Path: trunk/Src/C
- Use `eif_rt_xmalloc', `eif_rt_xfree' and `xrealloc' to process memory of `ex_string', so it is freed in `reclaim' automatically.
- Removed the use of `enomem' when using APIs above, as they already raise exceptions if needed.
- Set `ex_string.size' only when the memory is really allocated. Doing this to avoid potential issues that `size' is set while the memory is not allocated.
- Reset `ex_string' before building the trace and shrink memory afterward if needed. Shrinking is to avoid the situation that huge trace produces huge buffer which is freed until the end of a thread.
- Fixed a bug that the actual trace building was done twice. This was caused by wrong usage of macro: RTMS(stack_trace_str()); So trace building now should be twice faster than it was.

Revision 73920 - Directory Listing
Modified Mon Jun 23 07:02:43 2008 UTC (11 years, 5 months ago) by manus
Original Path: trunk/Src/C
Added -lrt for both multithreaded and non-multithreaded application as it is needed
  to get nanosleep.


Revision 73918 - Directory Listing
Modified Mon Jun 23 04:14:24 2008 UTC (11 years, 5 months ago) by tedf
Original Path: trunk/Src/C
- Use per thread data as flags in `eif_panic' and `fatal_error' to avoid cascade.
- More comments for trace printing.

Revision 73910 - Directory Listing
Modified Fri Jun 20 19:15:49 2008 UTC (11 years, 5 months ago) by manus
Original Path: trunk/Src/C
When a thread exit, we should clear the per thread data, as otherwise, if we do not do that, and try
  to register one more time the thread, it would not register it in EIF_INITIALIZE_AUX_THREADS since
  he will be able to get the previous value (Because not reset).


Revision 73875 - Directory Listing
Modified Thu Jun 19 06:26:56 2008 UTC (11 years, 5 months ago) by tedf
Original Path: trunk/Src/C
- Reset eif_except.last at the beginning of building a trace. This fixed bug#14465, that exception trace always printed "Exit" as Effect.
- Removed the usage of "static" for buffers and some flags to avoid problems of multi-threading. This fixed test#except027 and bug#14450.
- Went through all `sprintf' to ensure buffers are not overflown. Fixed a lot, because of not taking into account the empty char appended by `sprintf'. Fixed test#except026 and bug#14477.
- Improved trace printing by using eclipse when names are too long to print.

Revision 73874 - Directory Listing
Modified Thu Jun 19 06:06:23 2008 UTC (11 years, 5 months ago) by manus
Original Path: trunk/Src/C
Ensured that on Windows, files are always open in a non-inheritable way
  as otherwise, when creating a child process, the files owned by the
  parent process cannot be removed until the child exits.
  This was definitely needed for the multithreaded version of eweasel
  for which we could not delete test directories since a child process
  inherited a handle to a file in the test directory.


Revision 73860 - Directory Listing
Modified Wed Jun 18 10:15:56 2008 UTC (11 years, 5 months ago) by tedf
Original Path: trunk/Src/C
Added if clause to test ex_string.area before freeing and explicitly set it with NULL afterwards.

Revision 73858 - Directory Listing
Modified Wed Jun 18 04:04:55 2008 UTC (11 years, 5 months ago) by tedf
Original Path: trunk/Src/C
Free `ex_string.item' allocated for trace printing when disposing threads. Fixed bug#14472.

Revision 73845 - Directory Listing
Modified Mon Jun 16 17:12:27 2008 UTC (11 years, 5 months ago) by manus
Original Path: trunk/Src/C
Changed signature of `eif_thr_register' to take as argument the information on whether the thread
  was created by the runtime/EiffelThreads or if it was created by some third party C library not under
  the control of Eiffel code. For the later, it means that we cannot kill the thread when exiting, we
  have to simply unregister the thread from the runtime datastructure.

Note that the CECIL code for disposing of the thread is incorrect since it will kill the external thread.
  however no solution is provided at the moment since this is clearly not a new bug.


Revision 73844 - Directory Listing
Modified Mon Jun 16 17:01:50 2008 UTC (11 years, 5 months ago) by manus
Original Path: trunk/Src/C
Moved `eif_thr_sleep' from `eif_threads.c' to `eif_sleep' in `misc.c' so that this functionality is
  available in non-multithreaded applications as well.


Revision 73832 - Directory Listing
Modified Thu Jun 12 17:00:52 2008 UTC (11 years, 5 months ago) by manus
Original Path: trunk/Src/C
Fixed wrong location of the CHECK statement which would be easily violated if you have a MEMORY
  object that has already been forwarded since the `zone' would point to the old location not the
  new one.


Revision 73829 - Directory Listing
Modified Thu Jun 12 04:35:05 2008 UTC (11 years, 5 months ago) by manus
Original Path: trunk/Src/C
Renamed `eif_com.h' into `eif_com_exception.h' as it conflicts with `eif_com.h' from the EiffelCOM library.
  This fixes bug#14459.


Revision 73825 - Directory Listing
Modified Wed Jun 11 21:32:11 2008 UTC (11 years, 5 months ago) by manus
Original Path: trunk/Src/C
Added definition of `eif_thread_fork' to be just `fork' in a non-multithreaded application.


Revision 73787 - Directory Listing
Modified Tue Jun 3 23:53:47 2008 UTC (11 years, 6 months ago) by fivaa
Original Path: trunk/Src/C
Removed redundant comment

Revision 73785 - Directory Listing
Modified Tue Jun 3 19:09:40 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Moved to EiffelStudio 6.3 release.


Revision 73777 - Directory Listing
Modified Mon Jun 2 12:36:48 2008 UTC (11 years, 6 months ago) by tedf
Original Path: trunk/Src/C
Save `errno' for runtime io error. Fixed except025.

Revision 73713 - Directory Listing
Modified Mon May 26 05:29:11 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed `type_defined' which was not properly handling the case of old
  storable for which the negative values for representing formals
  where positive and less than MAX_DTYPE in the new format. So when
  retrieving an old storable, we use the validation used at the time.


Revision 73685 - Directory Listing
Modified Fri May 23 02:36:25 2008 UTC (11 years, 6 months ago) by tedf
Original Path: trunk/Src/C
Fixed test#except023. The actually signal number was not passed into Eiffel code.

Revision 73646 - Directory Listing
Modified Tue May 20 06:46:56 2008 UTC (11 years, 6 months ago) by jfiat
Original Path: trunk/Src/C
Fixed bug#14343: Runtime warning to be fixed

Revision 73636 - Directory Listing
Modified Mon May 19 21:39:16 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Use `-D_CRT_NONSTDC_NO_DEPRECATE' rather than -wd4996 since the later suppresses all deprecated
  function warnings not just the one we don't want to be warned about.


Revision 73635 - Directory Listing
Modified Mon May 19 21:38:50 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Use `-D_CRT_NONSTDC_NO_DEPRECATE' rather than -wd4996 since the later suppresses all deprecated
  function warnings not just the one we don't want to be warned about.


Revision 73634 - Directory Listing
Modified Mon May 19 21:08:47 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Use `time.h' to get some time routine otherwise we get an undeclared warning for `time' in file.c


Revision 73633 - Directory Listing
Modified Mon May 19 20:52:41 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed various warnings reported by gcc on 32-bit platform:
- some issues with the scanf/printf family function when we switch to int to EIF_TYPE_INDEX
  to represent the dynamic types
- possible ambiguities and others.


Revision 73632 - Directory Listing
Modified Mon May 19 20:47:25 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Removed non-used routine `app_recv_ack'.


Revision 73631 - Directory Listing
Modified Mon May 19 20:46:35 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Removed non-used routine.


Revision 73574 - Directory Listing
Modified Fri May 16 15:32:16 2008 UTC (11 years, 6 months ago) by tedf
Original Path: trunk/Src/C
Added more parenthesis to be clearer.

Revision 73573 - Directory Listing
Modified Fri May 16 13:08:56 2008 UTC (11 years, 6 months ago) by tedf
Original Path: trunk/Src/C
Parenthesized && within ||, since gcc complains about this.

Revision 73569 - Directory Listing
Modified Fri May 16 10:17:55 2008 UTC (11 years, 6 months ago) by jfiat
Original Path: trunk/Src/C
Fixed erroneous declaration.

Revision 73539 - Directory Listing
Modified Thu May 15 06:31:03 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Use of LENGTH macro instead of accessing the struct member directly.


Revision 73538 - Directory Listing
Modified Thu May 15 06:30:19 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Added check statement to show that conversion from uint32 to uint16 is valid.


Revision 73535 - Directory Listing
Modified Wed May 14 22:07:02 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Removed `-mlongcall' because recent version of gcc (4.2) crashes when used.


Revision 73534 - Directory Listing
Modified Wed May 14 22:02:44 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#exec074 on big endian platform because we incorrectly initialize BIT attributes
  in `wstdinit'. We assumed that the size was stored as `uint32' but actually it is a `uint16', and
  instead of worrying about the size we simply use the LENGTH macro (but we had still to fix a bug 
  in the macro expansion because the `b' variable was not surrounded by ()).


Revision 73526 - Directory Listing
Modified Wed May 14 17:18:15 2008 UTC (11 years, 6 months ago) by tedf
Original Path: trunk/Src/C
Use clear local rather than RTSN to save `nstcall'.

Revision 73525 - Directory Listing
Modified Wed May 14 17:01:30 2008 UTC (11 years, 6 months ago) by tedf
Original Path: trunk/Src/C
- Fixed the issue in `top_n_call'. `sk_end - 1' should be the last item of a chunk rather than `sk_arena'. Fixed test except021.
- Now we save `last_exception' for each call in the `xinterp' and `xiinv' rather than `interpret' where it was impossible to protect/release the exception object which could be collected or moved around by GC. `eif_protect' and EIF_OBJECT is used now to ensure this.
- Added `nstcall' restoration in `set_last_exception' and `last_exception'. Because when they were called,  `nstcall' value was changed by Eiffel calls. This later could cause incorrect invariant evaluation when it was executed in between of setting `nstcall' and the actual interpreting in the interpreter.


Revision 73524 - Directory Listing
Modified Wed May 14 16:40:40 2008 UTC (11 years, 6 months ago) by tedf
Original Path: trunk/Src/C
- Fixed an old bug in RTLI and RTXI. Comparison `l' with st_end is not sufficient since after retries, the `loc_set' has been restored to what it was at beginning of the call, but `l' could still be the one saved after local stack space expansion. This means `l' could be points to stack chunk rather than current one of `loc_set'. In this case, space expansion is dangerous and causes crash. This fixed test except022.

Revision 73472 - Directory Listing
Modified Fri May 9 22:37:16 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Added routine for performance benchmark on doubles.


Revision 73471 - Directory Listing
Modified Fri May 9 22:29:06 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed wrong alignment for 64-bit OS.


Revision 73466 - Directory Listing
Modified Fri May 9 20:50:08 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Added display of double vs float alignment.


Revision 73465 - Directory Listing
Modified Fri May 9 20:44:57 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Commited generated Makefile.SH.


Revision 73463 - Directory Listing
Modified Fri May 9 20:36:36 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Committing first the Jmakefile which show that now `offset.c' has been moved from C/bench
  to C/run-time. And updated the way we build `x2c' and `runtime_validation'.


Revision 73462 - Directory Listing
Modified Fri May 9 20:20:57 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Moved `offset.c' from C/bench to C/runtime so that we can reused the code in `x2c.c' and in the
  new `runtime_validation.c'. In the process got rid of `x2c.h' since the functionality is now
  soleley in `offset.c' and the client of `x2c.h' could have used `eif_size.h' instead. Also
  we removed the XXOFF macros in favor a runtime computed offsets in `offset.c'.


Revision 73460 - Directory Listing
Modified Fri May 9 18:28:00 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Updated comment about `no polymorphism' since this is not correct.


Revision 73459 - Directory Listing
Modified Fri May 9 16:58:07 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed Makefile so that it can compile `runtime_validation.c'.


Revision 73458 - Directory Listing
Modified Fri May 9 16:54:45 2008 UTC (11 years, 6 months ago) by manus
Original Path: trunk/Src/C
Added a check for double alignment.


Revision 73442 - Directory Listing
Modified Fri May 9 06:36:02 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/C
Added building of `runtime_validation' on windows.


Revision 73440 - Directory Listing
Modified Fri May 9 06:06:27 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/C
Fixed wrong alignment on some 32-bit machines where doubles needs to be 8 bytes aligned.
Added alignment verification in `runtime_validation.c'.


Revision 73439 - Directory Listing
Modified Fri May 9 05:51:18 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/C
Removed UTF-8 marker.


Revision 73438 - Directory Listing
Modified Fri May 9 05:33:00 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/C
Added ignore of `runtime_validation' binary.


Revision 73437 - Directory Listing
Modified Fri May 9 05:30:55 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/C
Committed to match the new Jmakefile (not committed at the same time so that people
  do not have jmake are not penalized).


Revision 73436 - Directory Listing
Modified Fri May 9 05:27:38 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/C
Added the building of `runtime_validation' a small tool to ensure that statically 
 chosen configuration of the runtime actually makes sense.


Revision 73431 - Directory Listing
Modified Fri May 9 05:12:06 2008 UTC (11 years, 7 months ago) by tedf
Original Path: trunk/Src/C
Removed duplicated "#include "eif_except.h"".

Revision 73420 - Directory Listing
Modified Thu May 8 21:20:00 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/C
Use the Sun CC __thread qualifier for Thread Local Storage. We gain about 13% in speed:
-175s without multithreading
-222s with multithreading without __thread
-195s with multithreading with __thread


Revision 73408 - Directory Listing
Modified Thu May 8 15:21:25 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/C
Added `eif_except.h' so that we declare properly `init_emnger'. Most likely fixes bug#14322.


Revision 73389 - Directory Listing
Modified Wed May 7 16:05:25 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/C
Fixed missing \ which causes a syntax error.


Revision 73384 - Directory Listing
Modified Wed May 7 06:54:25 2008 UTC (11 years, 7 months ago) by jfiat
Original Path: trunk/Src/C
Various changes to improve the recording, minimize the object creation in the recording code.
Generate a leave feature macro RTDBGLE, instead of hooking existing macro RTEE and RTEOK.

Revision 73324 - Directory Listing
Modified Tue May 6 04:24:35 2008 UTC (11 years, 7 months ago) by tedf
Original Path: trunk/Src/C
Removed unused local.

Revision 73307 - Directory Listing
Modified Sat May 3 14:19:26 2008 UTC (11 years, 7 months ago) by tedf
Original Path: trunk/Src/C
Fixed where there was a memory leak when no chunk of `loc_stack' was allocated, restoring the values, saved as NULL after `longjmp', caused the chunk of memory allocated somewhere before that `longjmp' lost. Did the same to `hec_stack' just in case the situation happens. This partially fixed except019 of frozen, finalized code and part of melt code. There is still memory leak not found in melt code: 80088 bytes for every 712 retries.

Revision 73300 - Directory Listing
Modified Fri May 2 20:50:50 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/C
Added very early support for the Haiku OS (formerly based on BeOS).
Only finalized runtime now compiles and this is by modifying one of the BeOS header
  to not define `B_BUSY' which is a macro used in our runtime. The workbench runtime
  does not compile because we use `select' and the kinds for the debugger and it is 
  different on BeOS.


Revision 73294 - Directory Listing
Modified Fri May 2 17:03:15 2008 UTC (11 years, 7 months ago) by tedf
Original Path: trunk/Src/C
Added comment to note `exclear' and `unwind_trace' should be merged in the future, since they are pretty much the same.

Revision 73287 - Directory Listing
Modified Fri May 2 12:48:45 2008 UTC (11 years, 7 months ago) by tedf
Original Path: trunk/Src/C
Now we unwind the trace at retry so that the trace does not grow infinitely. Fixed test#except015.

Revision 73230 - Directory Listing
Modified Tue Apr 29 12:41:00 2008 UTC (11 years, 7 months ago) by tedf
Original Path: trunk/Src/C
- Moved `init_emnger' to the end of `eif_rtinit'.
- Added `init_emnger' at the end of EIF_REGISTER_THREAD to ensure object accesses from ISE_EXCEPTION_MANAGER are initialized before unmanaged thread outside calling Eiffel code.
- Removed `init_emnger' in code generation, since it is called in `eif_rtinit'.
- Disabled profiling when Eiffel code is called from `init_emnger'. Profiling is meaningless before entering user starting point. Moreover, profiling haven't been setup at the end of `eif_rtinit', at least for normal Eiffel apps.

Revision 73220 - Directory Listing
Modified Fri Apr 25 23:12:40 2008 UTC (11 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: make i18n (localization) wrappers 32-bit clean -- define a macro for 32-bit strdup() to use when compiling with default sized pointers

Revision 73212 - Directory Listing
Modified Fri Apr 25 20:59:28 2008 UTC (11 years, 7 months ago) by davids
Original Path: trunk/Src/C
Let's try this again: remove lines inserted by svn merge at previous checkin.

VMS/CECIL: Initialize exception manger (call init_emnger) at end of EIF_INITIALIZE macro.
Fixes bug #14243-1, and corrects previous fix (73168) which put it at the end of EIF_RT_BASIC_SETUP, and caused a SEGV.


Revision 73209 - Directory Listing
Modified Fri Apr 25 19:09:01 2008 UTC (11 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS/CECIL: Initialize exception manger (call init_emnger) at end of EIF_INITIALIZE macro.
Fixes bug #14243-1, and corrects previous fix (73168) which put it at the end of EIF_RT_BASIC_SETUP, and caused a SEGV.


Revision 73199 - Directory Listing
Modified Fri Apr 25 17:18:40 2008 UTC (11 years, 7 months ago) by fivaa
Original Path: trunk/Src/C
Modified EIFFEL_ENV and platform specific config files to support unix layout again.

Revision 73170 - Directory Listing
Modified Thu Apr 24 20:50:52 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/C
Removed the inclusion of `/usr/local/include' for just `iconv' since actually we also need
  `-L/usr/local/lib' for including the `libiconv.a' library. We are going to do a tiny scripts
  in the encoding library to address that.


Revision 73169 - Directory Listing
Modified Thu Apr 24 16:07:28 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/C
Added header file lookup from /usr/local/include as it is done on OpenBSD as the `iconv'
  library is located there.


Revision 73168 - Directory Listing
Modified Thu Apr 24 13:42:44 2008 UTC (11 years, 7 months ago) by tedf
Original Path: trunk/Src/C
- Initialize exception manager in CECIL initialization routine.
- Initialize needed once objects for every thread when creating. This would fix potential problems when no more memory to use in threads.
- Fixed the bug where SIGRESUME was not called after SIGBLOCK. This fixed bug#14152 and possibly some other bugs.

Revision 73130 - Directory Listing
Modified Tue Apr 22 00:03:37 2008 UTC (11 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: comment out targets for MT objects


Revision 73101 - Directory Listing
Modified Fri Apr 18 18:29:15 2008 UTC (11 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: make i18n (localization) wrappers 64-bit clean (VMS localization routines require 32-bit pointers)

Revision 73050 - Directory Listing
Modified Wed Apr 16 17:30:19 2008 UTC (11 years, 7 months ago) by jfiat
Original Path: trunk/Src/C
New set of geant's build scripts.
Among other, it store the F_code of each compiled tool under BIN/spec/platform/F_codes
this is a first step toward porterpackage for linux and Windows.

Revision 73040 - Directory Listing
Modified Wed Apr 16 16:12:24 2008 UTC (11 years, 7 months ago) by jfiat
Original Path: trunk/Src/C
Fixed various issue with execution recording (mostly related to GC)
- various optimization for the execution recording
- renamed RT_DBG_RECORD, as RT_DBG_VALUE_RECORD

Revision 73030 - Directory Listing
Modified Tue Apr 15 16:14:59 2008 UTC (11 years, 7 months ago) by jfiat
Original Path: trunk/Src/C
Fix a few issue in relation to GC.
(remember parents, when putting a reference in the tuple used for RT_EXTENSION interaction with runtime)


Revision 73022 - Directory Listing
Modified Mon Apr 14 14:29:16 2008 UTC (11 years, 7 months ago) by jfiat
Original Path: trunk/Src/C
use DISCARD_BREAKPOINTS and UNDISCARD_BREAKPOINTS everywhere instead of using either those one, or the C methods.


Revision 73017 - Directory Listing
Modified Sat Apr 12 08:29:39 2008 UTC (11 years, 7 months ago) by jfiat
Original Path: trunk/Src/C
removed debug code

Revision 73015 - Directory Listing
Modified Sat Apr 12 06:29:23 2008 UTC (11 years, 7 months ago) by jfiat
Original Path: trunk/Src/C
- Completed commits for "execution record and replay" functionality
- harmonize use of level in callstack and callstack's depth and call's depth
- store dbg profiles data in a dedicated session, instead of storing in the same "dbg" sessions. This should prevent the lost of profiles .. too often.
- revert back timeout delay before closing ipc_engine  (might fix bug#14190 Long pause after execution finishes when run system under debugger)
- fixed bug#14117 Status bar message about `ignoring breakpoints' is not refreshed when status is changed
- removed previous hack about bug#14120: Object tool grayed out the first time you put EiffelStudio in debug mode

Revision 73000 - Directory Listing
Modified Wed Apr 9 22:04:06 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#runtime005 which was broken due to the recent protection to `eif_wean' to allow
  calling `eif_wean' twice on the same object. The issue is that `st_has' was checking all the chunks
  even if they were past the `top'.
In `hpop' we truncate `free_stack' whenever we do not use a new chunk, that way we can always return
  some memory.


Revision 72992 - Directory Listing
Modified Wed Apr 9 19:04:20 2008 UTC (11 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: remove targets for MT objects


Revision 72991 - Directory Listing
Modified Wed Apr 9 18:39:37 2008 UTC (11 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: add eif_getenv_native

Revision 72990 - Directory Listing
Modified Wed Apr 9 18:38:25 2008 UTC (11 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: add signal-handling control for CECIL programs

Revision 72989 - Directory Listing
Modified Wed Apr 9 18:37:13 2008 UTC (11 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS:VMS: add i18n wrappers


Revision 72988 - Directory Listing
Modified Wed Apr 9 18:36:23 2008 UTC (11 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: add ident string to #pragma; 
add upcase wrappers for EIF_WEAN (new name for EWEAN), EIF_PROTEXT (new name for HENTER);
add stub for tcsetpgrp()


Revision 72987 - Directory Listing
Modified Wed Apr 9 18:33:23 2008 UTC (11 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: comment out second #define DEBUG (the one that generates a compiler warning)

Revision 72986 - Directory Listing
Modified Wed Apr 9 18:32:14 2008 UTC (11 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: add definitions for i18n wrappers

Revision 72985 - Directory Listing
Modified Wed Apr 9 18:30:36 2008 UTC (11 years, 7 months ago) by davids
Original Path: trunk/Src/C
VMS: remove targets for MTfinalized.olb

Revision 72976 - Directory Listing
Modified Tue Apr 8 23:00:46 2008 UTC (11 years, 7 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#tilde002 where if `ANY.is_equal' was melted or calling a melted routine then
  the execution would not complete properly.


Revision 72973 - Directory Listing
Modified Tue Apr 8 19:58:22 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Updated since RTNHOOK takes 2 arguments now.


Revision 72972 - Directory Listing
Modified Mon Apr 7 18:15:25 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Made sure that in finalized mode catcalls are detected and displayed.


Revision 72962 - Directory Listing
Modified Sun Apr 6 04:14:22 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Removed useless declaration of EIF_GET_CONTEXT


Revision 72959 - Directory Listing
Modified Sat Apr 5 17:59:09 2008 UTC (11 years, 8 months ago) by jfiat
Original Path: trunk/Src/C
- better catcall detection control (console and debugger)
- use remote evaluation for remote store/load object, and also for most of the replay mechanism
  (this makes the runtime lighter and cleaner)
- introduced break_nested_index (in addition to break index)
- breakpoint: do not save hidden breakpoint (since most of the time, the when hits action might include many unwanted objects)
- add a debugger observer check point to update debugger data (such as breakpoints, catcall detection .. other)
- added on_application_initialized which is just before it is really launched

- Partial integration of execution recording and replay (a few C macros are disabled for now, for next interim release)

- cosmetics

Revision 72947 - Directory Listing
Modified Fri Apr 4 22:46:07 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed fixme about usage of `tenure' in `hector.c'. Added `eif_tenure_object' in garcol.c to do the
  right job.


Revision 72935 - Directory Listing
Modified Thu Apr 3 22:52:03 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Speed up `file_gss' quite significantly. The issue is that it was reading character by character.
  Using `fread' instead is much faster. Our benchmark shows that we went from 2s down to 0.015s.
  On the compiler we went from 173s down to 170s.


Revision 72926 - Directory Listing
Modified Tue Apr 1 18:41:37 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Removed non-used local included via EIF_GET_CONTEXT.


Revision 72920 - Directory Listing
Modified Tue Apr 1 04:52:39 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Added `st_has' to search for a data in a stack. This is a good replacement for `has_object' previously
  defined in `object_id.c' for assertion monitoring purpose. Added `st_address_in_stack' to see if
  an address location belongs to one of the chunk that makes the stack; this is mostly use for assertion
  monitoring in `eif_wean' to ensure that the argument is indeed coming from the stack `hec_saved'.
Made `eif_wean' more robust by making it safe to free twice the same EIF_OBJECT (before it would cause
  some runtime misbehavior), this makes `eif_wean' slightly slower if you have a lot of objects, but
  this is the cost to pay to have safer/robust interface with our runtime.


Revision 72903 - Directory Listing
Modified Fri Mar 28 23:54:50 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Disabled expensive assertions when compiling runtime in debug mode as it is too expensive.


Revision 72870 - Directory Listing
Modified Wed Mar 26 05:57:04 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Removed useless code for `is_initialized' since now the protection via hector is on a global basis
  and the parent thread protects the object and only the child thread can free it.


Revision 72868 - Directory Listing
Modified Wed Mar 26 05:22:48 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#final046 which was extended to cover the case where an object is
  created when polymorphic call where the return type is orginally a formal generic parameter.
  The new code generation works by setting a flag `eif_optimize_return' that tells the wrapper
  used for dynamic binding to not create an object but store the value in a per thread global
  variable `eif_optimzed_return_value' (it cannot return the address of a C local variable
  because the stack is unwinded, thus this global variable).
  Although not the best solution, in the worse case scenario the speed up is 400+% faster. On the
  compiler it improves the performance by about 2%.
  Compared to the 5.7 best solution, in the worst case scenario (shown by eweasel test#final046)
  it is only 10% slower.


Revision 72867 - Directory Listing
Modified Wed Mar 26 05:16:21 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Removed inclusion of `eif_threads.h' since we actually to know the actual type for the non-used
  field `ovs_tid' in the object header.  This causes some issue because `eif_threads.h' also includes
  `eif_types.h'. This occurs when you include `eif_types.h' in `eif_plug.h', then `lmalloc.c' would not
  compile on Solaris.


Revision 72846 - Directory Listing
Modified Mon Mar 24 19:40:24 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
A review of the code of `eif_thr_exit' showed that since now HECTOR is global, we were doing some useless
  protection and free of the thread current object. So now, when a thread is created, its parent thread
  protects the current object, and when the thread exit it weans it. Also after weaning it, we set the value
  to NULL so clearly show it.

The side effect of this change (setting to NULL) resulted in the disparition of a crash that a customer
  had because it seems that `eif_thr_exit' was called twice in the same thread although it is not in theory
  possible since the call to `eif_thr_exit' is protected from multiple entries.


Revision 72791 - Directory Listing
Modified Wed Mar 19 04:54:30 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Removed useless if statement in finalized mode.


Revision 72789 - Directory Listing
Modified Wed Mar 19 04:16:53 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#thread001 due to the overflow of the `tv_nsec' field greater than one second
  which would cause an EINVAL return code to `pthread_cond_timedwait'.


Revision 72763 - Directory Listing
Modified Sun Mar 16 21:43:54 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Removed Wp64 option since it is being deprecated on 32-bit platform by Microsoft.


Revision 72754 - Directory Listing
Modified Fri Mar 14 19:06:20 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
I made a mistake in the eweasel test, it is test#exec107.


Revision 72753 - Directory Listing
Modified Fri Mar 14 19:05:29 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Improved memory reallocation of large special objects when not shared (see eweasel test#exec096)
  by requesting a full collection when more than a quarter of memory could be freed if the old
  object is indeed dead.


Revision 72749 - Directory Listing
Modified Fri Mar 14 16:57:46 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Added catcall detection at runtime for melted mode.
Renamed `generate_catcall_check_for_argument' into `generate_catcall_check' since it can be used
  for some other things (e.g. named tuple access).


Revision 72732 - Directory Listing
Modified Thu Mar 13 20:46:07 2008 UTC (11 years, 8 months ago) by paulb
Original Path: trunk/Src/C
Correctly aligned preprocessors.

Revision 72731 - Directory Listing
Modified Thu Mar 13 19:40:23 2008 UTC (11 years, 8 months ago) by paulb
Original Path: trunk/Src/C
Added access to the user's user files (i.e. My Documents on Windows, ~/ on Unix-based)

Revision 72727 - Directory Listing
Modified Thu Mar 13 16:40:30 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed issue found when debugging eweasel test#exec255 where the comparison of expanded
  did not check that they had the same type. The reason why it was not done anymore is
  because in the past we used `eequal' to compare objects (which does the type check) but
  now we use `is_equal'.


Revision 72726 - Directory Listing
Modified Thu Mar 13 16:26:48 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed catcall detection so that it works with BIT types too.


Revision 72692 - Directory Listing
Modified Tue Mar 11 17:01:34 2008 UTC (11 years, 8 months ago) by jfiat
Original Path: trunk/Src/C
Improved catcall detection at runtime notification in the Eiffel debugger
(note: the IPC protocol changed, then if you update be sure to recompile and relink with new runtime)

Revision 72684 - Directory Listing
Modified Tue Mar 11 05:35:31 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Improved code generation for catcall detection so that harmless catcalls are not reported. We may
  offer in the future an option to detect them. Reduced size of executable by reusing the same C string
  constants for feature names and avoid using a string constant for the type and use an integer instead.


Revision 72670 - Directory Listing
Modified Mon Mar 10 17:51:04 2008 UTC (11 years, 8 months ago) by jfiat
Original Path: trunk/Src/C
Implemented a first mechanism in the Eiffel debugger to handle the catcall detection at runtime.
(this will be improved shortly)

Revision 72664 - Directory Listing
Modified Mon Mar 10 00:41:04 2008 UTC (11 years, 8 months ago) by manus
Original Path: trunk/Src/C
Added detection of catcalls at runtime. First implementation only does it for C code
  generation and only prints to the console the potential catcall detection. Next
  version should support melted code and handling in EiffelStudio.


Revision 72654 - Directory Listing
Modified Fri Mar 7 23:20:49 2008 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/C
Made `eif_typename' public as it could be used by clients for debugging C code.


Revision 72570 - Directory Listing
Modified Mon Mar 3 17:32:09 2008 UTC (11 years, 9 months ago) by jfiat
Original Path: trunk/Src/C
New way to control the fact to ignore (or not) the breakpoints (previous Run without breakpoints). Now there is a toggle button in the top tool bar.

+ various renaming to better describe the implementation
(note that change in runtime are just renaming, and does NOT require recompilation or bootstrap)
+ Cosmetics.

Revision 72569 - Directory Listing
Modified Mon Mar 3 16:35:21 2008 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/C
Fixed C compiler warning.


Revision 72566 - Directory Listing
Modified Sun Mar 2 23:18:05 2008 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/C
Fixed missing arguments.


Revision 72565 - Directory Listing
Modified Sun Mar 2 23:13:12 2008 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/C
Updated generated Makefile.SH by new version of metaconfig.


Revision 72563 - Directory Listing
Modified Sun Mar 2 23:03:44 2008 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/C
Updated to latest version of metaconfig which does not need you to tell which symbols you are
  going to use.


Revision 72562 - Directory Listing
Modified Sun Mar 2 23:00:47 2008 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/C
Updated to latest version of metaconfig which does not need you to tell which symbols you are
  going to use.


Revision 72535 - Directory Listing
Modified Thu Feb 28 23:09:05 2008 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/C
Made `ei_size' to always return the allocated size of the object (not the one we wished we
  allocated) and also taken into account the header size.


Revision 72520 - Directory Listing
Modified Thu Feb 28 01:45:56 2008 UTC (11 years, 9 months ago) by davids
Original Path: trunk/Src/C
VMS: force use of select jacket on VMS; close pipes that are open from parent; give slow VMS systems 5 seconds to start workbench application

Revision 72519 - Directory Listing
Modified Thu Feb 28 01:39:57 2008 UTC (11 years, 9 months ago) by davids
Original Path: trunk/Src/C
VMS: don't define errno ad hoc (let the #include do its job)

Revision 72518 - Directory Listing
Modified Thu Feb 28 01:39:04 2008 UTC (11 years, 9 months ago) by davids
Original Path: trunk/Src/C
VMS: include ipcvms.h to define VMS select jacket; don't define errno ad hoc (let the #include do its job)

Revision 72517 - Directory Listing
Modified Thu Feb 28 01:37:00 2008 UTC (11 years, 9 months ago) by davids
Original Path: trunk/Src/C
VMS: force use of select jacket on VMS; resolve module name clash with library/net/clib/network.c

Revision 72516 - Directory Listing
Modified Thu Feb 28 01:34:37 2008 UTC (11 years, 9 months ago) by davids
Original Path: trunk/Src/C
VMS: force use of select jacket on VMS

Revision 72514 - Directory Listing
Modified Thu Feb 28 01:29:36 2008 UTC (11 years, 9 months ago) by davids
Original Path: trunk/Src/C
VMS: include ipcvms.h to define VMS select jacket; don't define errno ad hoc (let the #include do its job)

Revision 72512 - Directory Listing
Modified Thu Feb 28 01:22:48 2008 UTC (11 years, 9 months ago) by davids
Original Path: trunk/Src/C
VMS: add target for MTipc.olb

Revision 72490 - Directory Listing
Modified Wed Feb 27 01:52:17 2008 UTC (11 years, 9 months ago) by davids
Original Path: trunk/Src/C
VMS: comment out generation of eif_size.h; now relegated to top level makefile [C]makeinc.vms

Revision 72489 - Directory Listing
Modified Wed Feb 27 01:44:08 2008 UTC (11 years, 9 months ago) by davids
Original Path: trunk/Src/C
VMS: correct use of __USE_64_BIT_FUNCS (it's always defined as 0 or 1) in deciding whether or not to use 64-bit variant of struct passwd

Revision 72473 - Directory Listing
Modified Tue Feb 26 06:20:06 2008 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/C
Check for negative values too.


Revision 72467 - Directory Listing
Modified Tue Feb 26 01:12:52 2008 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/C
Fixed C compilation error since `l_chld_cond' is only defined when EIF_NO_CONDVAR is not defined (i.e.
  when system supports condition variable).


Revision 72466 - Directory Listing
Modified Tue Feb 26 01:11:44 2008 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/C
Fixed incorrect C comments.


Revision 72421 - Directory Listing
Modified Sat Feb 23 01:01:06 2008 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/C
Updated Makefile.SH accordingly to the new Jmakefile which removed encode.c.


Revision 72420 - Directory Listing
Modified Sat Feb 23 00:58:28 2008 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/C
Removed `encode.c' which does not exist anymore.


Revision 72419 - Directory Listing
Modified Sat Feb 23 00:45:27 2008 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/C
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 72386 - Directory Listing
Modified Thu Feb 21 00:48:41 2008 UTC (11 years, 9 months ago) by davids
Original Path: trunk/Src/C
VMS: renamed size.vms to eif_size_h.vms

Revision 72385 - Directory Listing
Modified Thu Feb 21 00:45:18 2008 UTC (11 years, 9 months ago) by davids
Original Path: trunk/Src/C
VMS: add rule for generating eif_*.h files from eif_*_h.vms files; renamed config.vms to eif_config_h.vms

Revision 72384 - Directory Listing
Modified Thu Feb 21 00:44:19 2008 UTC (11 years, 9 months ago) by davids
Original Path: trunk/Src/C
VMS: add EIF_OS_ and EIF_ARCH_ symbols

Revision 72381 - Directory Listing
Modified Wed Feb 20 22:47:17 2008 UTC (11 years, 9 months ago) by davids
Original Path: trunk/Src/C
Renamed remotely

Revision 72380 - Directory Listing
Modified Wed Feb 20 22:46:06 2008 UTC (11 years, 9 months ago) by davids
Original Path: trunk/Src/C
Renamed remotely

Revision 72370 - Directory Listing
Modified Wed Feb 20 17:40:51 2008 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/C
Added built-in for `double_bytes' from PLATFORM.


Revision 72353 - Directory Listing
Modified Tue Feb 19 11:30:51 2008 UTC (11 years, 9 months ago) by tedf
Original Path: trunk/Src/C
Fixed the neglect which caused runtime panic when raising serialization exception.

Revision 72329 - Directory Listing
Modified Mon Feb 18 07:12:36 2008 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/C
Added backward compatiblity routines so that people who do not want to recompile their library
  (which they should since a new runtime could be incompatible but don't want for some reasons)
  don't get a linker error.


Revision 72315 - Directory Listing
Modified Thu Feb 14 22:01:08 2008 UTC (11 years, 9 months ago) by manus
Original Path: trunk/Src/C
Fixed incorrect type specification for `Dtype' and `Dftype' as they should use EIF_TYPE_INDEX now.


Revision 72306 - Directory Listing
Modified Thu Feb 14 10:30:05 2008 UTC (11 years, 9 months ago) by tedf
Original Path: trunk/Src/C
- Peeled ISE implementation for exception as object.
- Made all features in EXCEPTION_MANAGER built-ins.
- Added EXCEPTION_MANAGER_FACTORY as a solution to instantiate exception manager for local implementations.
- Instantiate ISE_EXCEPTION_MANAGER instead of EXCEPTION_MANAGER.
- Changed com, vision2 and wel accordingly.

Revision 72284 - Directory Listing
Modified Tue Feb 12 16:49:31 2008 UTC (11 years, 9 months ago) by jfiat
Original Path: trunk/Src/C
Fixed issue with IPC (raised by trying to use execution replay)
fixed bug#13951: Operating system signal in [DEBUG_EXT.send_rqst_3_integer] in EiffelStudio.

Revision 72174 - Directory Listing
Modified Fri Feb 1 16:42:36 2008 UTC (11 years, 10 months ago) by paulb
Original Path: trunk/Src/C
Reverted to is_mac

Revision 72173 - Directory Listing
Modified Fri Feb 1 16:36:55 2008 UTC (11 years, 10 months ago) by paulb
Original Path: trunk/Src/C
changed platform query `is_mac' to `is_mac_os'

Revision 72154 - Directory Listing
Modified Thu Jan 31 21:02:28 2008 UTC (11 years, 10 months ago) by paulb
Original Path: trunk/Src/C
Added query for Mac OS as a platform in PLATFORM.
Fixed cURL library to ustilize Mac OS dylib version of libcurl


Revision 72057 - Directory Listing
Modified Sat Jan 26 01:22:12 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Added `-xstrconst' to optimize C strings (multiple identical C strings become
  juste one and are in read-only section).


Revision 72056 - Directory Listing
Modified Sat Jan 26 01:12:07 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Updated to Boehm GC version 7.0


Revision 72055 - Directory Listing
Modified Fri Jan 25 17:26:59 2008 UTC (11 years, 10 months ago) by davids
Original Path: trunk/Src/C
VMS: 64 bit cleanup: remove stale macros (superseded by 64-bit-clean versions in eif_vmsdef.h), cleanup comments

Revision 72032 - Directory Listing
Modified Thu Jan 24 13:55:07 2008 UTC (11 years, 10 months ago) by jfiat
Original Path: trunk/Src/C
- Added debugger support for Exception As Object (EAO)
  - Updated IPC protocol (classic debugger) to use the exception objects to get exception data.
  - Harmonized classic and dotnet eiffel debugger
  - Updated UI to show exception objects (and data)
  - Now exception filtering (exception handling) is done only on type name (`code' should not be used anymore)

+ make sure ICOR_DEBUG_MODULE, ICOR_DEBUG_CLASS, ICOR_DEBUG_FUNCTION are managed only by ICOR_OBJECTS_MANAGER (make_by_pointer and clean_on_dispose)
+ cosmetics

Note: the eiffel dotnet debugger still has weaknesses, especially in certain cases to get (inherited) attributes on objects.


Revision 72025 - Directory Listing
Modified Wed Jan 23 21:57:17 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Updated to new version of SunStudio 12 which changed the name of a C compiler option, we need 
  to use -m64 instead.


Revision 72014 - Directory Listing
Modified Tue Jan 22 21:37:52 2008 UTC (11 years, 10 months ago) by davids
Original Path: trunk/Src/C
VMS: update comments


Revision 72013 - Directory Listing
Modified Tue Jan 22 18:54:38 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Removed useless RT_GET_CONTEXT.


Revision 72012 - Directory Listing
Modified Tue Jan 22 18:54:23 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Forgot to surround access to `hec_saved' with #ifdef ISE_GC since it only makes sense there.


Revision 71975 - Directory Listing
Modified Fri Jan 18 21:40:16 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
New implementation of `eif_adopt', `eif_wean', `eif_protect', `eif_freeze' and `eif_unfreeze' so
  that the calls can be made in any threads. This fixes eweasel test#runtime005.
  For `freeze' and `unfreeze' it was easy, the previous implementation was using `eif_adopt' and 
  a custom version of `eif_wean' but this was useless as only the B_C flags matter.
  For the others, we now have a new mutex `eif_hec_saved_mutex' to synchronize all the calls to the
  `hec_saved' and `free_stack' data structure.
Updated garcol.c, traverse.c and eif_threads.c to reflect that change


Revision 71973 - Directory Listing
Modified Fri Jan 18 21:08:41 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Updated to new location of the xslt tranform binary.


Revision 71972 - Directory Listing
Modified Fri Jan 18 20:43:04 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Use the real names of `eif_adopt', `eif_wean', `eif_protect', `eif_freeze' and `eif_unfreeze'
  for the function name.
Removed `spfreeze', `spufreeze' and `hfree': the first two because they did not work anymore, one
  has to use `eif_freeze/eif_unfreeze' instead, the last one because no one I know of is using it
  (most people use `eif_wean').
Updated runtime to new calls.


Revision 71967 - Directory Listing
Modified Fri Jan 18 05:12:35 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Added `c_opstack_reset' to avoid C compilation warning for reusing `opstack_reset' which is
  not made for the `struct c_opstack' structure.


Revision 71966 - Directory Listing
Modified Fri Jan 18 05:08:12 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Added removal of warning wd4706 since the double parenthesis does not disable that warning like
  it does for most unix C compiler.


Revision 71965 - Directory Listing
Modified Fri Jan 18 05:06:29 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Fixed signature to use EIF_PROCEDURE instead of EIF_POINTER since it is a function pointer.


Revision 71959 - Directory Listing
Modified Thu Jan 17 21:56:57 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Removed non-used local `com_error'.


Revision 71947 - Directory Listing
Modified Wed Jan 16 23:33:13 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Fixed mismatch in declaration of eedefined that is now `public'. Gcc 4.0 complained, not the other
  C compilers.


Revision 71933 - Directory Listing
Modified Wed Jan 16 00:49:58 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Previous commit for `eif_macros.h' only worked for generated code, not for compiling the runtime.
   Therefore I added the routine in the runtime instead.


Revision 71930 - Directory Listing
Modified Tue Jan 15 21:11:58 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Made RTAR as a function since it seems to makes code bigger (4% on the compiler) without
  making it any faster.


Revision 71920 - Directory Listing
Modified Tue Jan 15 14:51:03 2008 UTC (11 years, 10 months ago) by tedf
Original Path: trunk/Src/C
Removed disable/enable instructions in `oraise' to fix the problem breakpoints never breakable after raising an exception in once routine. The problem was that calling `egc_once_raise' lead to a longjmp, so `undiscard_breakpoints();' was never called anymore.

Revision 71917 - Directory Listing
Modified Tue Jan 15 10:25:06 2008 UTC (11 years, 10 months ago) by tedf
Original Path: trunk/Src/C
Fixed bug#13831 that the top vector of the trace was missing. Also fixed the wrong line number by initializing new created vectors for assertion. Removed unnecessary tags in the trace.

Revision 71902 - Directory Listing
Modified Mon Jan 14 14:32:40 2008 UTC (11 years, 10 months ago) by jfiat
Original Path: trunk/Src/C
fixed typo

Revision 71901 - Directory Listing
Modified Mon Jan 14 14:26:02 2008 UTC (11 years, 10 months ago) by jfiat
Original Path: trunk/Src/C
only cosmetic +style guidelines for 
    "if cond { inst1; } else { inst2; }"
instead of 
    "if cond inst1; else inst2;"


Revision 71899 - Directory Listing
Modified Mon Jan 14 10:52:30 2008 UTC (11 years, 10 months ago) by jfiat
Original Path: trunk/Src/C
be sure to test MTOF(o) and *MTOF(o) for once's exception status

Revision 71893 - Directory Listing
Modified Sun Jan 13 23:58:53 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Creation of `ec_kernel.ecf' which is the configuration of the compiler, now `ec.ecf' is using it
  in addition of repeating its content for both batch and bench. There is some work to be done of
  moving more classes around but we don't want to change too much the organization as it would break
  those who are working on branches.
To achieve the above, there was some work on preferences so that the compiler library is using the
  strict minimum of preferences and descendants have their own more complete version.
  Created SETTABLE_COMPILER_OBJECTS which records the onces used by the compiler which can be set
  with different objects depending on what you are compiling (one example is the preferences).
Removed `edition_agents' from EB_PROJECT_MANAGER since it could be done differently, it was only used
  in EB_DEVELOPMENT_WINDOW_STATUS_BAR.
Changed EB_KERNEL so that no initialization is done, it is now done in ES and ES_ABSTRACT_GRAPHIC.
Moved some documentation classes formerly in the compiler to be in the flat_short directory.
Created special descendant of COMMAND_EXECUTOR to be used in EiffelStudio which have access to the various
  manager so that output can be redirected.
Made JVM_IL_CODE_GENERATOR compile.


Revision 71871 - Directory Listing
Modified Fri Jan 11 19:26:29 2008 UTC (11 years, 10 months ago) by jfiat
Original Path: trunk/Src/C
Debugger (classic): partly fixed issue with Once inspection
+ factorize code to send reference from app to ewb

Revision 71861 - Directory Listing
Modified Fri Jan 11 12:25:35 2008 UTC (11 years, 10 months ago) by tedf
Original Path: trunk/Src/C
- Added back `eename' and `eedefined' in runtime, so that EiffelCom can still use them.
- Changed EN_PROG to EN_COM in EiffelCom and raise COM_FAILURE objects instead of a developer exception.
- Merged ECOM_EXCEPTION into COM_FAILURE, using build-in mechanism.
- Removed some hard-code and duplicated code.

Revision 71840 - Directory Listing
Modified Thu Jan 10 19:50:02 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Previous fix for eweasel test#exec169 did not work in most cases. Instead of initializing
  the `max' field to INVALID_DTYPE, we now initialize it to 0 and which simplifies the computation
  of `min' and `max'. Then we also removed the computation of `upper' in `create_desc' since
  in most system `upper' = `ccount' (because not classes are removed) so there is no need to try
  optimizing the size of the `desc_info' table anyway.


Revision 71839 - Directory Listing
Modified Thu Jan 10 18:57:41 2008 UTC (11 years, 10 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#exec169 where our changes in the definition of the `bounds' structure from
  int to EIF_TYPE_INDEX caused the allocation of large `desc_info' tables thus causing the test
  to fail since it is a test that check that we do not allocate too much memory when launching
  threads.


Revision 71796 - Directory Listing
Modified Mon Jan 7 17:07:46 2008 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/C
Removed remaining `int16' and replace them by EIF_TYPE_INDEX.


Revision 71786 - Directory Listing
Modified Sun Jan 6 06:09:35 2008 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/C
Fixed missing parenthesis on RTFCID.


Revision 71783 - Directory Listing
Modified Sat Jan 5 21:53:09 2008 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/C
Improved performance of generated code with regard to dynamic binding. Currently we were using the
  full dynamic type, but since tables are indexed with the dynamic type instead, it requires an
  indirection to get the dtype from the dftype. This indirection costs about 4% on the compiler
  speed and 2% in executable size. The solution was to store both dftype and dtype in the object
  header. On 64-bit, the header is keeping its size, on 32-bit it goes from 8 bytes to 12 bytes.
  That is to say on 32-bit, when you had 8MB of memory used for headers, it is now using 12MB,
  and usually this corresponds to 70MB of data (for the compiler at least).

Consequence:
- dynamic types have a type definition EIF_TYPE_INDEX
- dynamic types are limited to 65000+ (before it was 32000+)
- updated runtime to use EIF_TYPE_INDEX wherever a dtype/dftype is used. Some places were using
  a int or long and this was abused (e.g. debugger encoding 2 dtypes on one int).

Other work:
- fixed most C warnings generated by the VS 2005 C++ comiler
- fixed some issues with equal/copy (use of dtype instead of dftype and comparison of expanded objects
  which should query the size in EIF_Size and not in the object header, since expanded on the stack
  have no size).
- fixed eweasel test#melt064.
- fixed eweasel test#exec255 which eventhough was passing, was not when enabling runtime assertions.
- fixed some issues with storables with respect to storable of special of expanded
- fixed issue with retrieval of special of expanded (see eweasel test#store013).
- simplified `st_write_func' to not take the flags since it is not needed for storing.

What's not perfect:
- There is a mix of usage of int, uint32 and int16 in the interpreter and in store/retrieve for representing
  types. It would be nice to make this more consistent and to use EIF_TYPE_INDEX instead.


Revision 71730 - Directory Listing
Modified Fri Jan 4 23:22:26 2008 UTC (11 years, 11 months ago) by davids
Original Path: trunk/Src/C
VMS: ensure #include eif_portable.h precedes eif_cecil.h

Revision 71728 - Directory Listing
Modified Fri Jan 4 23:20:10 2008 UTC (11 years, 11 months ago) by davids
Original Path: trunk/Src/C
VMS: protect against multiple inclusion (can happen when compiling CECIL programs);
define macros to control runtime exception handling (for use by CECIL programs).

Revision 71727 - Directory Listing
Modified Fri Jan 4 23:17:46 2008 UTC (11 years, 11 months ago) by davids
Original Path: trunk/Src/C
VMS: allow use of 64 bit struct passwd returned by getpwuid()

Revision 71698 - Directory Listing
Modified Thu Jan 3 17:06:49 2008 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/C
Enabled runtime assertions via a #ifdef ISE_USE_ASSERT which simply needs to be defined
  in the config file, so that only one file modification is required when debugging with
  assertion.


Revision 71691 - Directory Listing
Modified Wed Jan 2 23:14:15 2008 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/C
Use strncmp instead of strnicmp which does not exist on Unix.


Revision 71690 - Directory Listing
Modified Wed Jan 2 18:54:09 2008 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/C
Increased warning level to 4 and removed warnings C4702 about unreachable code (for which we put
  a return statement as some C compilers reported a warning for not having one) and C4100 about
  non-used formal parameters.


Revision 71665 - Directory Listing
Modified Fri Dec 28 09:14:24 2007 UTC (11 years, 11 months ago) by tedf
Original Path: trunk/Src/C
- Fixed except012 for classic, now the runtime takes the caller of `{EXCEPTION_MANAGER}.raise' or `{EXCEPTION}.raise' as recipient. The name `raise' is hard coded, it means that recipient computation relies on the name and renaming could affect the caught recipient.
- Plugged EXCEPTION type as non mandatory.
- Merged `topcall' and `seccall' into `top_n_call'.

Revision 71664 - Directory Listing
Modified Fri Dec 28 06:28:02 2007 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/C
Added RTLNSP2 as a macro which separates flags from the dynamic type.
  This is to make easy in the transition with the new runtime with minor
  modification in the compiler's generate code.


Revision 71637 - Directory Listing
Modified Mon Dec 24 22:24:16 2007 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/C
Minor optimization by using + instead of * to compute the offset while initializing a special
  of expanded.


Revision 71636 - Directory Listing
Modified Mon Dec 24 21:58:04 2007 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/C
Fixed bug#13818 and eweasel test#runtime004 where we did not protect `obj' when initializing
  a SPECIAL with expanded type that have a creation procedure. In which case, it a GC cycle is
  launched, `obj' may not be valid anymore.


Revision 71554 - Directory Listing
Modified Tue Dec 18 04:55:36 2007 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/C
Changed the values for EIF_OS and EIF_ARCH so that there is less possible conflicts with existing
  `EIF_XXX' macros. This is currently for VMS where we currently define EIF_VMS and could not reuse
  EIF_VMS for EIF_OS. So now it will be EIF_OS_VMS.
Updated C code of il8n library which was already using EIF_OS.


Revision 71552 - Directory Listing
Modified Tue Dec 18 01:27:30 2007 UTC (11 years, 11 months ago) by tedf
Original Path: trunk/Src/C
First integration of Exceptions as Objects.
There are some remaining issues:
- Final layout of base. EXCEPIONS in `elks' now depends on `ise'
- Decision to change name of `last_exception' to `last_unhandled_exception'.
- Old expression evaluations. They are recomputed after retry.
- SYS_EXCEPTION & SYSTEM_EXCEPTION, EIF_EXCEPTION & EIFFEL_EXCEPTION the naming issue.
- The place invariants are generated makes wrong recipient of post-invariant.
- except007, except008 failes on .NET. Because of invariants are generated in callers.
- except012, computation of recipients. 
- exec079, classic, could indicate memory leak problem.
- fixed036, classic, too slow, because of the trace is getting bigger and bigger to build.

Revision 71480 - Directory Listing
Modified Thu Dec 13 03:59:14 2007 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/C
Removed obsolete feature `eif_thr_create' since now we only use the `eif_thr_create_with_args' routine.


Revision 71479 - Directory Listing
Modified Thu Dec 13 03:58:38 2007 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/C
Updated to the 6.2 delivery registry path.


Revision 71452 - Directory Listing
Modified Tue Dec 11 05:36:11 2007 UTC (11 years, 11 months ago) by manus
Original Path: trunk/Src/C
Updated from version 1.08 to version 2.02 of Minilzo.


Revision 71428 - Directory Listing
Modified Fri Dec 7 23:09:28 2007 UTC (12 years ago) by manus
Original Path: trunk/Src/C
The POINTER display on Solaris should be lX as otherwise only the lower
  parts is kept on 64-bit. This fixes bug#13598 where debugger would crash
  because of the truncated data.


Revision 71425 - Directory Listing
Modified Fri Dec 7 20:49:32 2007 UTC (12 years ago) by jfiat
Original Path: trunk/Src/C
Fixed issue about checking if value is NULL, instead of the opposite (about dbg_exception_trace[i])
Fixed issue when clearing all breakpoint, the loop should start at 0, instead of 1, since the body_index used in the runtime, is in fact, the `real_body_index - 1' from the eiffel debugger's code (aka: compiler's data)
(Thanks to DH for raising those issues.)

Revision 71410 - Directory Listing
Modified Fri Dec 7 12:15:52 2007 UTC (12 years ago) by jfiat
Original Path: trunk/Src/C
Fully automated EiffelStudio's building using geant scripts:
  It integrates part of the work done by "es-make" project from ETH (mainly on the checker script)
  This is a first step in rewriting the previous $EIFFEL_SRC/scripts/*.eant scripts to build 'ec' and make a new delivery.

Added a few standalone geant scripts in the EiffelStudio's source code, to ease the compilation.


Revision 71368 - Directory Listing
Modified Wed Dec 5 18:43:01 2007 UTC (12 years ago) by manus
Original Path: trunk/Src/C
Fixed a bug where a SIGBLOCK was not balanced with SIGRESUME in case one could not extend
  the stack. (Thanks for DH to spot this).


Revision 71343 - Directory Listing
Modified Mon Dec 3 05:42:14 2007 UTC (12 years ago) by manus
Original Path: trunk/Src/C
There was a confusion between the usage of alib_line and link_line which is
  important for minGW so that one can use a precompile of vision2 (the current
  setting would cause a C compilation error).
  For future reference, `alib_line' should be used whenever the library is going
  to be referenced by an external in an Eiffel project. The `link_line' is for
  building a library to be included in a library build via `alib_line'.


Revision 71215 - Directory Listing
Modified Mon Nov 19 23:58:02 2007 UTC (12 years ago) by davids
Original Path: trunk/Src/C
VMS: include "request.h" to define Request typedef; include VMS-specific platform definitions for system and library calls

Revision 71214 - Directory Listing
Modified Mon Nov 19 23:56:13 2007 UTC (12 years ago) by davids
Original Path: trunk/Src/C
VMS: update Makefile.VMS to build both normal and MT objects/libraries

Revision 71180 - Directory Listing
Modified Fri Nov 16 08:32:19 2007 UTC (12 years ago) by jfiat
Original Path: trunk/Src/C
Fixed bug#13610: System execution ends with panic after activating execution recording
(during final collecting, if the exec recording is still activated, there might be issue during the collection, we should stop recording when entering the final collection, but for now, let's check the target rt_extension_obj is not NULL)

Revision 71168 - Directory Listing
Modified Thu Nov 15 22:20:23 2007 UTC (12 years ago) by manus
Original Path: trunk/Src/C
To match the C specification, the field we use for the union initialization in our generated
  code needs to be the first one. Extract of C standard: <<Several members of a structure can
  be initialized at once; only the first member of a union can be given an initializer.>>


Revision 71157 - Directory Listing
Modified Thu Nov 15 07:13:05 2007 UTC (12 years ago) by manus
Original Path: trunk/Src/C
Fixed bug#13597 as manifest struct initialization doesn't work when handling a union.


Revision 71153 - Directory Listing
Modified Wed Nov 14 22:38:01 2007 UTC (12 years ago) by alexk
Original Path: trunk/Src/C
Added new byte code to support object test for expanded types in melted mode (this fixes bug#13574).

Revision 71059 - Directory Listing
Modified Tue Nov 6 01:45:52 2007 UTC (12 years, 1 month ago) by davids
Original Path: trunk/Src/C
VMS: update VMS definitions; re-enable #pragma to disable extra semicolon warning message (for some Eiffel-generated code)

Revision 71058 - Directory Listing
Modified Tue Nov 6 01:40:50 2007 UTC (12 years, 1 month ago) by davids
Original Path: trunk/Src/C
VMS:VMS: only invoke special VMS getenv hack (to return logical name "/" prefixed) if logical name has CONCEALED attribute


Revision 71056 - Directory Listing
Modified Tue Nov 6 01:13:32 2007 UTC (12 years, 1 month ago) by davids
Original Path: trunk/Src/C
VMS: update VMS makefiles

Revision 70975 - Directory Listing
Modified Wed Oct 31 23:13:09 2007 UTC (12 years, 1 month ago) by manus
Original Path: trunk/Src/C
Fixed an issue when exiting a thread if a signal occurs while freeing all the GC data from
  the global lists. In such scenario, the signal is raised after unsynchronizing the GC and
  then we are in trouble because the memory for signal handling has been freed. For the moment,
  we simply prevent that from happening by calling SIGBLOCK without a corresponding SIGRESUME.


Revision 70970 - Directory Listing
Modified Wed Oct 31 23:04:15 2007 UTC (12 years, 1 month ago) by manus
Original Path: trunk/Src/C
Try to synchronize all running threads only when `reclaim' is not disabled.


Revision 70945 - Directory Listing
Modified Tue Oct 30 17:00:04 2007 UTC (12 years, 1 month ago) by manus
Original Path: trunk/Src/C
Fixed an issue which causes code specific to the Alpha to be compiled in when it was not
  really needed. This appeared when EIF_ALPHA went from just a defined symbol to a value.


Revision 70941 - Directory Listing
Modified Tue Oct 30 03:24:37 2007 UTC (12 years, 1 month ago) by manus
Original Path: trunk/Src/C
Fixed bug found by Ted and its new implementation of exceptions we forgot to
  remove the pseudo execution vector from the stack when no exception occurs
  in `portable_retrieve'.


Revision 70884 - Directory Listing
Modified Wed Oct 24 23:54:05 2007 UTC (12 years, 1 month ago) by davids
Original Path: trunk/Src/C
VMS: simplify #ifdef nesting for standard types rt_int_ptr and rt_uint_ptr (copied from branch Eiffel_57_VMS) 

Revision 70803 - Directory Listing
Modified Tue Oct 23 16:26:54 2007 UTC (12 years, 1 month ago) by jfiat
Original Path: trunk/Src/C
Protected if rt_extension_obj is NULL

Revision 70753 - Directory Listing
Modified Sat Oct 20 08:13:02 2007 UTC (12 years, 1 month ago) by alexk
Original Path: trunk/Src/C
Added macros used in code generation for object test.

Revision 70750 - Directory Listing
Modified Sat Oct 20 00:39:34 2007 UTC (12 years, 1 month ago) by manus
Original Path: trunk/Src/C
Fixed code that did not compile. Needs to be checked by Jocelyn.


Revision 70734 - Directory Listing
Modified Fri Oct 19 20:12:45 2007 UTC (12 years, 1 month ago) by jfiat
Original Path: trunk/Src/C
+ changed constants values for later usage
+ proper call for rescue case during execution recording.
+ Code cleaning for RT_... classes (i.e: less output, comment, feature order...)

Revision 70660 - Directory Listing
Modified Thu Oct 18 18:11:50 2007 UTC (12 years, 1 month ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#store012 where a retrieval exception would freeze the GC synchronization
  because `eif_gc_mutex' was not unlocked.


Revision 70647 - Directory Listing
Modified Wed Oct 17 23:59:21 2007 UTC (12 years, 1 month ago) by manus
Original Path: trunk/Src/C
Include `stdlib.h' to get `getenv'.


Revision 70589 - Directory Listing
Modified Tue Oct 16 01:00:26 2007 UTC (12 years, 1 month ago) by davids
Original Path: trunk/Src/C
VMS: update VMS makefiles, config.vms

Revision 70569 - Directory Listing
Modified Sun Oct 14 10:03:53 2007 UTC (12 years, 1 month ago) by jfiat
Original Path: trunk/Src/C
+ 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 70536 - Directory Listing
Modified Tue Oct 9 14:13:51 2007 UTC (12 years, 1 month ago) by jfiat
Original Path: trunk/Src/C
Fixed bug#13373: TUPLE.object_comparison not shown in the debugger
Display extra information related to "object_comparison" function.
For dotnet, there is no change since we were already displaying the first item of the storage (index 0 of the native array), and we display a TUPLE as a standard reference value without interpretation (as we do for classic).

Revision 70489 - Directory Listing
Modified Wed Oct 3 22:22:44 2007 UTC (12 years, 2 months ago) by manus
Original Path: trunk/Src/C
Use the `RT_LNK' flag so that we can link against the dynamic runtime.


Revision 70472 - Directory Listing
Modified Sun Sep 30 22:21:33 2007 UTC (12 years, 2 months ago) by manus
Original Path: trunk/Src/C
Could not use a static in `eif_macros.h' for RTCV because it uses `eraise' and unfortunately
  `eif_except.h' is including `eif_macros.h' which includes `eif_except.h' and thus when compiling
  some C code of our runtime (i.e. sig.c) it would simply fail.
  For the time being we added `eif_check_call_on_void_target' in except.c and uses it from `eif_macros.h'.


Revision 70470 - Directory Listing
Modified Sun Sep 30 15:40:17 2007 UTC (12 years, 2 months ago) by manus
Original Path: trunk/Src/C
Added support for generating check for call on void targets in finalized mode instead of crashing
  with a segfault.


Revision 70457 - Directory Listing
Modified Sat Sep 29 03:31:17 2007 UTC (12 years, 2 months ago) by manus
Original Path: trunk/Src/C
I'm not sure why it was added since when calling `plsc' it will call `scollect' which already
  disable the breakpoints. The reason why I'm removing it, is that in a multithreaded application
  it causes us to write to a memory location which was just being freed (this is the update to
  `eif_globals->d_data->db_discard_breakpoints' but `eif_globals' was just freed).


Revision 70456 - Directory Listing
Modified Sat Sep 29 03:22:38 2007 UTC (12 years, 2 months ago) by manus
Original Path: trunk/Src/C
Fixed broken `analyze_desc' part since now the `desc_info' structure has now one attribute more.


Revision 70386 - Directory Listing
Modified Wed Sep 19 21:37:47 2007 UTC (12 years, 2 months ago) by manus
Original Path: trunk/Src/C
Added initial (and yet incomplete and not tested) configuration file for lcc on 64-bit.


Revision 70385 - Directory Listing
Modified Wed Sep 19 21:36:53 2007 UTC (12 years, 2 months ago) by manus
Original Path: trunk/Src/C
Added l option for supporting `lcc' on Windows 64-bit.


Revision 70384 - Directory Listing
Modified Wed Sep 19 21:36:12 2007 UTC (12 years, 2 months ago) by manus
Original Path: trunk/Src/C
Fixed missing eol-style property.


Revision 70367 - Directory Listing
Modified Tue Sep 18 19:20:59 2007 UTC (12 years, 2 months ago) by manus
Original Path: trunk/Src/C
To avoid useless function calls, we only call the index function if one is indeed specified.


Revision 70108 - Directory Listing
Modified Thu Aug 23 22:07:20 2007 UTC (12 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed the code of `eeoclass' to be similar to `eelclass' by checking that the type ID
  is positive (not just different of 0). It is just a safety measure, not a solution
  against data corruption.


Revision 70083 - Directory Listing
Modified Thu Aug 23 05:53:06 2007 UTC (12 years, 3 months ago) by manus
Original Path: trunk/Src/C
Made it compile on older VC++ 6.0 which does not support conversion from natural to double.


Revision 69974 - Directory Listing
Modified Wed Aug 15 16:22:45 2007 UTC (12 years, 3 months ago) by manus
Original Path: trunk/Src/C
Added `cpu_total_time' and `sys_total_time' to get the total execution time of the application.


Revision 69963 - Directory Listing
Modified Tue Aug 14 16:59:17 2007 UTC (12 years, 3 months ago) by manus
Original Path: trunk/Src/C
Implemented `getcputime' on Windows by using the GetProcessTimes API.


Revision 69869 - Directory Listing
Modified Fri Aug 3 22:35:12 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#store011 where a 5.7 TUPLE object was not properly retrieved by a 6.0 version
  which uses the first tuple item entry to store `object_comparison'.


Revision 69856 - Directory Listing
Modified Fri Aug 3 09:09:22 2007 UTC (12 years, 4 months ago) by alexk
Original Path: trunk/Src/C
Unified run-time data structures. Now EIF_TYPED_VALUE is used by the
interpreter, tuples/agents and in workbench C code to pass arguments and
result. The new structure EIF_TYPED_ADDRESS is used to register C variables
for the debugger. The new structure EIF_DEBUG_VALUE is used to access and
modify a value either on interpreted stack or on C stack.


Revision 69855 - Directory Listing
Modified Fri Aug 3 09:07:19 2007 UTC (12 years, 4 months ago) by alexk
Original Path: trunk/Src/C
Unified run-time data structures. Now EIF_TYPED_VALUE is used by the
interpreter, tuples/agents and in workbench C code to pass arguments and
result. The new structure EIF_TYPED_ADDRESS is used to register C variables
for the debugger. The new structure EIF_DEBUG_VALUE is used to access and
modify a value either on interpreted stack or on C stack.


Revision 69854 - Directory Listing
Modified Fri Aug 3 09:05:21 2007 UTC (12 years, 4 months ago) by alexk
Original Path: trunk/Src/C
Unified run-time data structures. Now EIF_TYPED_VALUE is used by the
interpreter, tuples/agents and in workbench C code to pass arguments and
result. The new structure EIF_TYPED_ADDRESS is used to register C variables
for the debugger. The new structure EIF_DEBUG_VALUE is used to access and
modify a value either on interpreted stack or on C stack.


Revision 69853 - Directory Listing
Modified Fri Aug 3 08:29:07 2007 UTC (12 years, 4 months ago) by alexk
Original Path: trunk/Src/C
Ensured there is no difference when processing expanded object allocated in a heap or as a local (this eliminates the differences in behaviour of C and byte code for test#exec273).

Revision 69849 - Directory Listing
Modified Fri Aug 3 05:23:41 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#melt079 due to the wrong stack being accessed in `oitem'. This was a copy/paste
  bug from a long long time ago (~2000/2001).


Revision 69693 - Directory Listing
Modified Thu Jul 26 15:36:39 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Store OLD_COMSPEC in all situation otherwise COMSPEC gets unset after a clean.


Revision 69656 - Directory Listing
Modified Tue Jul 24 18:56:01 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Renamed windows configuration file so that they look more like $ISE_PLATFORM-$ISE_C_COMPILER (although
  it is not yet  $ISE_PLATFORM because we still use windows and win64 - but this might change since
  now the installer program is not in the way anymore).


Revision 69643 - Directory Listing
Modified Tue Jul 24 16:09:40 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Use COMSPEC only for `sh' since the other commands are not affected by the fork limitation of `sh'.


Revision 69632 - Directory Listing
Modified Tue Jul 24 01:07:09 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added restore of COMSPEC value as we might change it for getting MSYS working on 64-bit Windows system.


Revision 69631 - Directory Listing
Modified Tue Jul 24 00:58:33 2007 UTC (12 years, 4 months ago) by juliant
Original Path: trunk/Src/C
Changes by Manu: Protected calls to shell commands to run correctly on 64bit Windows.

Revision 69596 - Directory Listing
Modified Sat Jul 21 20:31:39 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Simplified `mtccflags' rule by using `ccflags'.


Revision 69595 - Directory Listing
Modified Sat Jul 21 20:28:44 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Simplified `mtccflags' rule by using `ccflags'.
Added DLL flags even though it does not work with Borland.


Revision 69594 - Directory Listing
Modified Sat Jul 21 20:25:10 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed dependency on OUTDIR since we do not create it.


Revision 69592 - Directory Listing
Modified Sat Jul 21 19:58:20 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
We need the Windows Socket library in order to build the DLL versions of the runtime.


Revision 69591 - Directory Listing
Modified Sat Jul 21 19:43:03 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Revisited config file so that we can easily compile the C libraries of Eiffel libraries.
Fixed run-time/Makefile-win.sh so that it can compile into a DLL.


Revision 69589 - Directory Listing
Modified Sat Jul 21 19:32:58 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Simplified lind for building ecdbgd.exe for Microsoft.


Revision 69585 - Directory Listing
Modified Sat Jul 21 17:47:04 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed useless MV, CP, LN, RM that were defined only for DOS prompt and actually never used
  except RM for deleting the .lib files of the runtimes but this is not really needed so we removed it.


Revision 69584 - Directory Listing
Modified Sat Jul 21 17:45:27 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added " to Borland C compiler paths as it would not work if the path contained a space.
Fixed building of ecdbgd for Borland by doing the above but also adding the path to the LIB directory
  that way we do not need any of the .cfg file.


Revision 69563 - Directory Listing
Modified Thu Jul 19 19:26:02 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed incorrect title.


Revision 69562 - Directory Listing
Modified Thu Jul 19 18:59:14 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Provided correct definition for `rt_include', `rt_lib', `rt_templates' and `x2c' for Windows platforms.


Revision 69561 - Directory Listing
Modified Thu Jul 19 18:48:01 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added " around the various MinGW commands so that we can mix / and \ in the path.
  (as this is the case when ISE_EIFFEL has \).


Revision 69558 - Directory Listing
Modified Thu Jul 19 18:23:16 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
No need to specify the full path to eif_config.mingw.h since it is found from the include path
  we gave from the command line.


Revision 69545 - Directory Listing
Modified Thu Jul 19 05:42:23 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Changed the default location for mingw, now it is under $ISE_EIFFEL/gcc/$ISE_PLATFORM.


Revision 69543 - Directory Listing
Modified Thu Jul 19 05:00:18 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Improved regular expression to convert $(X) into %X% as it was not working if you had
  multiple $(X) on the same line.


Revision 69541 - Directory Listing
Modified Thu Jul 19 03:58:17 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed `include_path' and `lib_path' which are not used anymore (since a long time already)
Cosmetics.
Added `nologo' to nmake.


Revision 69540 - Directory Listing
Modified Thu Jul 19 03:55:38 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added `nologo' to nmake.
Added -wd4996 to remove non needed warnings about obsolete posix calls. We will fix them
  when it will actually stop working.
Cosmetics.


Revision 69539 - Directory Listing
Modified Thu Jul 19 03:54:37 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed useless stuff.
Added `nologo' to nmake.


Revision 69534 - Directory Listing
Modified Thu Jul 19 01:32:18 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Speed up C compilation with mingw from 1m45s to 1m15s by using `imacros' option rather than
  defining macros on the command line.


Revision 69533 - Directory Listing
Modified Thu Jul 19 01:08:48 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Made runtime compile out of the box without having to install any cygwin tools:
 - Added minimum tools from MSYS so that we can have sh and other tools used to
   generate eif_config.h and eif_size.h
 - improved Borland compilation
 - improved mingw compilation
 - Use $(DIR) instead of \ as mingw requires /
 - Made USE_TLS dependend on __MINGW32__ as mingw does not support it and
   added macros redefinition for RTU64C and RTI64C so that we can use the same
   header files between VC++ and mingw.


Revision 69532 - Directory Listing
Modified Thu Jul 19 00:56:32 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed what is seems useless usage of `volatile' in signature of `metamorphose_top'.


Revision 69514 - Directory Listing
Modified Wed Jul 18 00:55:00 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed configuration to generate DLL.


Revision 69513 - Directory Listing
Modified Wed Jul 18 00:54:44 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Use `sh' instead of `bash' since it is more universal.


Revision 69510 - Directory Listing
Modified Tue Jul 17 22:39:05 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed an incorrect call to `metamorphose_top' that was previously undetected because its signature
  in the `rt_interp.h' header file was wrong.


Revision 69505 - Directory Listing
Modified Tue Jul 17 19:42:04 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Made runtime usable with mingw as network.lib and wconsole.lib needs to be relocatable archive
  with gcc so that we can include them in the runtime archive. Otherwise we get a bunch of unresolved
  externals at link time.
  Made it work with Borland and Microsoft as well.
Use `cmd /c del' instead of `del' which is not recognized by the MinGW makefile utility.


Revision 69504 - Directory Listing
Modified Tue Jul 17 19:39:20 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed `networku.c' and `networku.h' since they are actually not used in our source code
  (On windows we use the definition from Winsock, and on unix it is included by default).


Revision 69488 - Directory Listing
Modified Tue Jul 17 05:58:21 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed C4996 warnings that are not useful at this stage. When it stops compiling with VC++
  we will address them.


Revision 69487 - Directory Listing
Modified Tue Jul 17 05:50:12 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed c compiler warning due to passing too many arguments compared to what is expected.


Revision 69486 - Directory Listing
Modified Tue Jul 17 05:42:14 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed a signed/unsigned comparison detected by Borland.


Revision 69485 - Directory Listing
Modified Tue Jul 17 05:41:37 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added comment about a warning raised by the borland C compiler which would certainly cause
  an infinite loop if this code was reactivated (currently disabled because of an earlier
  return statement).


Revision 69484 - Directory Listing
Modified Tue Jul 17 05:40:46 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added missing `return' statement at the end of `main' to avoid warning by Borland C compiler.


Revision 69483 - Directory Listing
Modified Tue Jul 17 05:40:02 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added precise signature to prevent Borland C compiler warning on function call through function pointer.
Fixed sigantures of routine without arguments so that they ready (void);
Fixed declaration of `p_interface' so that `toc' as a `fnptr' argument.


Revision 69482 - Directory Listing
Modified Tue Jul 17 05:36:40 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed Borland C compiler warning due to missing `void' in empty argument list.


Revision 69481 - Directory Listing
Modified Tue Jul 17 05:36:05 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added precise signature to prevent Borland C compiler warning.


Revision 69477 - Directory Listing
Modified Tue Jul 17 01:22:56 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Improved the cleanup process to remove too many outputs. Tested with 4NT and cmd.exe.


Revision 69476 - Directory Listing
Modified Tue Jul 17 01:07:27 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed warnings from VC++ 6.0.


Revision 69475 - Directory Listing
Modified Tue Jul 17 00:43:29 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added `output_exe_cmd' configuration which is needed so that it generates a `x2c.exe' and not `a.exe'
  as it is the case with MinGW.


Revision 69474 - Directory Listing
Modified Tue Jul 17 00:42:22 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added new target to compile `ecdbgd.exe' with MinGW.


Revision 69473 - Directory Listing
Modified Mon Jul 16 23:45:29 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Initial revision of MinGW windows compiler for 32-bit.


Revision 69472 - Directory Listing
Modified Mon Jul 16 23:44:32 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
New ignore rules (*.a)


Revision 69471 - Directory Listing
Modified Mon Jul 16 23:44:02 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed gcc warnings due to `dereferencing type-punned pointer will break strict-aliasing rules'.


Revision 69470 - Directory Listing
Modified Mon Jul 16 23:41:24 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
No need for EIF_GET_CONTEXT in `rout_obj_call_function_dynamic' so removed it.


Revision 69469 - Directory Listing
Modified Mon Jul 16 23:40:47 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added { } to disambiguate an else statement.


Revision 69468 - Directory Listing
Modified Mon Jul 16 23:40:17 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed non-used local.


Revision 69467 - Directory Listing
Modified Mon Jul 16 23:40:03 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed non-used local.


Revision 69466 - Directory Listing
Modified Mon Jul 16 23:39:50 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Use double ( ) around the while condition to really show to gcc that we indeed want an assignment
  in there not a comparison.


Revision 69465 - Directory Listing
Modified Mon Jul 16 23:38:53 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed `write_long' which has not been used for a very long time.


Revision 69464 - Directory Listing
Modified Mon Jul 16 23:37:32 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed warnings in `fprintf' due to using a DWORD where an unsigned int is expected.
Added { } to disambiguate the `else' part.



Revision 69463 - Directory Listing
Modified Mon Jul 16 23:37:01 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Prevented gcc warning by putting enough parenthesis around the | operator.
Used hexadecimal instead of octal.


Revision 69462 - Directory Listing
Modified Mon Jul 16 23:35:06 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed declaration of `read_mask' on Windows since we do not use it.


Revision 69461 - Directory Listing
Modified Mon Jul 16 23:32:39 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed warnings in `sprintf' due to using a DWORD where an unsigned int is expected.


Revision 69460 - Directory Listing
Modified Mon Jul 16 23:32:02 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed warnings in `printf' due to using a DWORD where an unsigned int is expected.
Made module variable `env' specific to non-Windows platform since it is not used on Windows.


Revision 69459 - Directory Listing
Modified Mon Jul 16 23:28:28 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed gcc warning `dereferencing type-punned pointer will break strict-aliasing rules'.


Revision 69458 - Directory Listing
Modified Mon Jul 16 23:27:19 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed the code for storing mechanism and retrieving mechanism using a STREAM since it has been
  commented out since the beginning (most likely because no performance gain was achieved).


Revision 69457 - Directory Listing
Modified Mon Jul 16 23:08:19 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed feature non-used static variable.


Revision 69456 - Directory Listing
Modified Mon Jul 16 23:06:45 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed non-used local.


Revision 69455 - Directory Listing
Modified Mon Jul 16 23:06:08 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Removed non-used variable which was a remain of the Windows 3.1 implementation (see rev#7747 for details).


Revision 69387 - Directory Listing
Modified Wed Jul 11 15:20:08 2007 UTC (12 years, 4 months ago) by manus
Original Path: trunk/Src/C
Updated to 6.1 release.


Revision 69133 - Directory Listing
Modified Fri Jun 15 23:16:15 2007 UTC (12 years, 5 months ago) by paulb
Original Path: trunk/Src/C
Added runtime function to determine if execution is in Eiffel code.


Revision 69103 - Directory Listing
Modified Fri Jun 15 03:28:11 2007 UTC (12 years, 5 months ago) by manus
Original Path: trunk/Src/C
Added -mlongcall for LinuxPPC as it is done on the Mac since it might enable us to provide a version
  for LinuxPPC.


Revision 69101 - Directory Listing
Modified Fri Jun 15 03:23:08 2007 UTC (12 years, 5 months ago) by manus
Original Path: trunk/Src/C
Added `-mlongcall' as otherwise one cannot finalize the compile on Mac. It might produce slower
  code but at least we have something.


Revision 69059 - Directory Listing
Modified Wed Jun 13 21:20:57 2007 UTC (12 years, 5 months ago) by jfiat
Original Path: trunk/Src/C
Fixed bug#10861: Trying to run debugger on multithreaded program with fork causes program panic
 - the eiffel debugger is not designed to handle two processes at the same time, and when forking ... the child has the same pipe, and is in debug_mode too.

Revision 69045 - Directory Listing
Modified Tue Jun 12 23:11:20 2007 UTC (12 years, 5 months ago) by manus
Original Path: trunk/Src/C
Fixed non-compilable code because locals needs to be declared before any code is executed.


Revision 69043 - Directory Listing
Modified Tue Jun 12 23:06:35 2007 UTC (12 years, 5 months ago) by manus
Original Path: trunk/Src/C
Fixed a dead lock when debugging a multithreaded application because if one thread obtained the lock
  for the debugger in `dstop' and then after obtaining the lock another thread gets the GC lock to
  perform a GC cycle and if this GC cycle calls some dispose routines then it will deadlock because those
  Eiffel routines will try to get the debugger lock but won't because the first thread who has it
  is not blocked because of the GC locks.
  Luckily now `discard_breakpoints' is a per thread data so we do not need the lock to see whether or
  not we should stop. So we have switched the ordering between the mutex lock and `discard_breakpoints'.


Revision 69033 - Directory Listing
Modified Tue Jun 12 20:10:29 2007 UTC (12 years, 5 months ago) by jfiat
Original Path: trunk/Src/C
Fixed bug#13030 - Cannot pause multi-threaded application after fix for bug#12934
using a db_discard_breakpoints per thread (instead of global), limit the risk to stay always with a big db_discard_breakpoints
(and thus unable to pause the application, or even to stop at a breakpoint)

Revision 69007 - Directory Listing
Modified Mon Jun 11 17:07:07 2007 UTC (12 years, 5 months ago) by jfiat
Original Path: trunk/Src/C
Completed fix for bug#13064 - Malloc buffer one character too short plus bugs in safe_unquoted_path




Revision 69005 - Directory Listing
Modified Mon Jun 11 16:35:23 2007 UTC (12 years, 5 months ago) by jfiat
Original Path: trunk/Src/C
Fixed issue with malloc and end of string \0 character.
Fixed bug#13064 - Malloc buffer one character too short plus bugs in safe_unquoted_path
(and it seems to fix also: bug#12966, bug#12964, bug#12963)

Note: uu_buffer_size includes the +1 for the last '\0'

Revision 68945 - Directory Listing
Modified Fri Jun 8 14:58:16 2007 UTC (12 years, 6 months ago) by alexk
Original Path: trunk/Src/C
Renamed `{SYSTEM_I}.set_freeze' and `{SYSTEM_I}.private_freeze' into
`request_freeze' and `is_freeze_requested' respectively to highlight the
fact that freezing happens because of compiler needs rather than due to
project settings or users' request.
Made `{SYSTEM_I}.is_freeze_requested' available for call to allow quick
test if the system is about to be frozen anyway to avoid more complex
checks.
Changed code generation for CECIL table in workbench mode to call wrappers
that convert CECIL types into EIF_UNION and back, so that CECIL interface
is preserved (this fixes code generation issues in test#ccomp063).
Ensured that if visible features are recompiled, the code is frozen so that
CECIL wrappers are generated.
Removed precondition "has_current_class" from `{TYPE_A}.create_info'
because it is not required for the implementation.
Removed byte code generation for CECIL table as it is not used in the
current implementation.


Revision 68910 - Directory Listing
Modified Wed Jun 6 21:44:34 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed bug#12934 by adding a call to RTGC after EIF_EXIT_C in the macro for DBGMTX_LOCK. The call to RTGC
  is required because after obtaining the lock we need to make sure that no other threads asked for a 
  GC cycle. If they did we should stop ourself and not continue.


Revision 68905 - Directory Listing
Modified Wed Jun 6 15:19:11 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed a memory corruption shown by eweasel test#tuple006. The issue is that in `traversal' for a TUPLE
  object we used an unprotected reference to the TUPLE, and while iterating over it we might trigger
  a GC cycle rendering the reference to the TUPLE completely invalid.


Revision 68844 - Directory Listing
Modified Sun Jun 3 14:31:33 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/C
Use -K PIC instead of -K pic since it would not compile even a small system, because pic only
  allows for 1024 symbols.


Revision 68836 - Directory Listing
Modified Fri Jun 1 23:22:07 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/C
Added `-K pic' option to solve bug#12129 and eweasel test#exec115 which stopped passing
  on Solaris after switching to Sun CC.


Revision 68779 - Directory Listing
Modified Thu May 31 08:27:01 2007 UTC (12 years, 6 months ago) by jfiat
Original Path: trunk/Src/C
Finally fixed evaluation of static call on external contained in a precompilation library.
Fixed part (5).1 of bug#12606: Stepping with Auto Expressions in sample graphical app causes crash

- Fixed issues in runtime related to dynamic_eval, static call and precompilation, thoses issues were only for debugger, since it is the only customer of dynamic_eval for static precompiled feature (not allowed for inline agent).
- Now we provide the dynamic type for the evaluation of precompiled feature (for non precompiled, this dynamic type id is computed)
- A few renaming in runtime C code  (op_first, op_second ... renamed as op_1, op_2, ...)
- Added a 4th field in Opaque structure for IPC protocol.



Revision 68776 - Directory Listing
Modified Thu May 31 05:19:08 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed an issue on Unix when using an Eiffel multithreaded library on Unix because the CECIL
  call `eif_set_thr_context' only creates `eif_thr_context' but the structure is not suitable
  for everything we do in `eif_thr_exit', so we added more protection.


Revision 68768 - Directory Listing
Modified Wed May 30 22:15:52 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed incorrect definition for `EIF_THREAD_DISPOSE'.


Revision 68756 - Directory Listing
Modified Wed May 30 14:22:31 2007 UTC (12 years, 6 months ago) by jfiat
Original Path: trunk/Src/C
Fixed evaluation of static call on external contained in a precompilation library.
Fixed part (5).2 of bug#12606: Stepping with Auto Expressions in sample graphical app causes crash

Revision 68727 - Directory Listing
Modified Tue May 29 16:11:10 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed C warning.


Revision 68726 - Directory Listing
Modified Tue May 29 16:02:10 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/C
Removed initialization of global variables since now the compiler is setting them in `eplug.c'.


Revision 68700 - Directory Listing
Modified Sat May 26 22:17:07 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed test#melt076 which showed a major design issue in the runtime when calling back
  Eiffel routines that may throw an exception (in that case an invariant violation).
  Indeed we protect the C locals using RT_GC_PROTECT and we are done we call RT_GC_WEAN.
  However if between the two calls an exception occurs, then we do not do the RT_GC_WEAN
  and the address of the C locals is not valid anymore since the C stacks rewinded.
  So later when the GC kicks in it actually try to follow an invalid reference and
  most likely a crash will occur.
  We fixed one above occurrence when checking the invariant and now we catch the exception
  and perform the cleanup before passing the exception to the next recipient.


Revision 68666 - Directory Listing
Modified Fri May 25 18:33:26 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/C
Obsoleted implementation of `eif_thr_create' since now we force the usage of `eif_thr_create_with_args'.


Revision 68578 - Directory Listing
Modified Tue May 22 21:24:15 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/C
Added fake definition for __stdcall, __fastcall and __cdecl calling convention on non-Windows
  platform so that one can take a shared library definition file that works on Windows and compile
  it on Unix or other platforms.


Revision 68573 - Directory Listing
Modified Tue May 22 20:39:57 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/C
Avoided a C warnings by initializing Result just before we raised an exception.


Revision 68544 - Directory Listing
Modified Mon May 21 21:17:12 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed a crash when launching the debugger because `envp' was not initialized and thus
  was not null, therefore after the fork, ecdbgd tried to free it, but since it is garbage
  it crashes.


Revision 68472 - Directory Listing
Modified Sat May 19 17:33:42 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/C
Removed non-need concatenation C preprocessor symbol which causes some errors with GCC.


Revision 68436 - Directory Listing
Modified Fri May 18 15:41:47 2007 UTC (12 years, 6 months ago) by manus
Original Path: trunk/Src/C
Removed SK_CHAR32 which has never been used.


Revision 68367 - Directory Listing
Modified Wed May 16 11:03:40 2007 UTC (12 years, 6 months ago) by jfiat
Original Path: trunk/Src/C
* Fixed bug#12604: Evaluating watch expression which is static access of external fails
* Fixed point 2) of bug#12696: Bug in Auto Expressions and Inline Agents (similar to bug#12604)
 -> Added support for static routine evaluation for debugger.

* Fixed bug#12717: (create {SPECIAL [NATURAL_8]}.make (10)).put (1, 1) expression crashes debugger
 -> Now we forbid creation of SPECIAL, this avoid crash (or frozen interface on linux)
	

Revision 68299 - Directory Listing
Modified Mon May 14 21:51:48 2007 UTC (12 years, 6 months ago) by jfiat
Original Path: trunk/Src/C
bug#12705 : Debugger cannot launch application if environment variable added

Revision 68284 - Directory Listing
Modified Mon May 14 07:50:33 2007 UTC (12 years, 6 months ago) by alexk
Original Path: trunk/Src/C
Corrected function signature to match the declaration in workbench mode.

Revision 68280 - Directory Listing
Modified Sun May 13 18:06:54 2007 UTC (12 years, 6 months ago) by alexk
Original Path: trunk/Src/C
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 68125 - Directory Listing
Modified Fri May 4 18:52:58 2007 UTC (12 years, 7 months ago) by manus
Original Path: trunk/Src/C
Disabled the GC by default when retrieving objects since it might slow things down dramatically
  and the newly created objects are live for some time.


Revision 68108 - Directory Listing
Modified Fri May 4 13:39:14 2007 UTC (12 years, 7 months ago) by jfiat
Original Path: trunk/Src/C
fixed various C warnings

Revision 68105 - Directory Listing
Modified Fri May 4 13:10:06 2007 UTC (12 years, 7 months ago) by jfiat
Original Path: trunk/Src/C
Completed support on "classic" system for class instantiation, now it is possible to create instance of generic classes, and also tuple (only on classic for now)
Fixed bug#11473: Problem evaluating TUPLE in debugger watch tool (classic only)


Revision 68053 - Directory Listing
Modified Wed May 2 09:04:09 2007 UTC (12 years, 7 months ago) by jfiat
Original Path: trunk/Src/C
+ Added support for instance creation on debugger expression evaluation (only for non generic type)
+ big change in debugger's grid to allow the user to change the order and location of locals, arguments, ...
  Fixed bug#12509: Cannot display locals and arguments before current object
+ fixed bug#12516: Set Slice Limits button brings up one window per click if Objects window undocked
+ improved slightly the has_rescue part from metric (using the new feature_i.has_rescue_clause)
+ cosmetic, typo

Revision 67775 - Directory Listing
Modified Sun Apr 8 20:55:48 2007 UTC (12 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed incorrectly specified NATURAL_64 constants.


Revision 67774 - Directory Listing
Modified Sun Apr 8 20:40:30 2007 UTC (12 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed C compilation error on non-Windows platform due to missing declaration of `cmdline'.


Revision 67749 - Directory Listing
Modified Fri Apr 6 14:32:57 2007 UTC (12 years, 8 months ago) by jfiat
Original Path: trunk/Src/C
Renamed ipc/shared/shword.c: shword(..)  into ipc_shword to avoid using the same function name in different context.

Revision 67726 - Directory Listing
Modified Wed Apr 4 12:57:35 2007 UTC (12 years, 8 months ago) by jfiat
Original Path: trunk/Src/C
Should fix bug#12335: Cannot execute system via debugger or finalized system if path has spaces
- Simplify ecdbgd code to launch debuggee application.
- Better handling of double quoted path (with blank)
- fixed shword for specific cases
- code cleaning + cosmetic
Note: you need to use the new ecdbgd executable with the workbench now.


Revision 67631 - Directory Listing
Modified Thu Mar 29 19:59:02 2007 UTC (12 years, 8 months ago) by manus
Original Path: trunk/Src/C
Use `-xcode=pic32' instead of `-KPIC' because this is obsolete on SPARC platform.


Revision 67471 - Directory Listing
Modified Thu Mar 22 18:18:23 2007 UTC (12 years, 8 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#ccomp062 and bug#12301 by adding missing cast in RTAOMS macro.


Revision 67401 - Directory Listing
Modified Tue Mar 20 18:11:20 2007 UTC (12 years, 8 months ago) by manus
Original Path: trunk/Src/C
We have to use the KPIC option because otherwise most Eiffel code won't link.


Revision 67398 - Directory Listing
Modified Tue Mar 20 17:31:47 2007 UTC (12 years, 8 months ago) by manus
Original Path: trunk/Src/C
Added missing <file> start attribute for XML documentation.


Revision 67391 - Directory Listing
Modified Tue Mar 20 05:34:31 2007 UTC (12 years, 8 months ago) by manus
Original Path: trunk/Src/C
Switched to Sun CC compiler.


Revision 67390 - Directory Listing
Modified Tue Mar 20 05:34:13 2007 UTC (12 years, 8 months ago) by manus
Original Path: trunk/Src/C
Removed non-needed space for `ldflags'.


Revision 67100 - Directory Listing
Modified Wed Mar 7 12:26:31 2007 UTC (12 years, 9 months ago) by jfiat
Original Path: trunk/Src/C
fixed typo on ecdbd_path instead of ecdbgd_path

Revision 67074 - Directory Listing
Modified Mon Mar 5 19:16:31 2007 UTC (12 years, 9 months ago) by manus
Original Path: trunk/Src/C
Continued simplifiying launching of ecdbgd by removing non-used (or not really needed)
  arguments.


Revision 67069 - Directory Listing
Modified Mon Mar 5 17:18:23 2007 UTC (12 years, 9 months ago) by jfiat
Original Path: trunk/Src/C
Simplify launching of ecdbgd(.exe)

Revision 66990 - Directory Listing
Modified Wed Feb 28 22:29:59 2007 UTC (12 years, 9 months ago) by manus
Original Path: trunk/Src/C
Do no pass a protected reference to `eif_chdir' anymore, we pass the C string directly
  since this is the way it is now implemented in FreeELKS.


Revision 66895 - Directory Listing
Modified Sun Feb 25 17:11:57 2007 UTC (12 years, 9 months ago) by manus
Original Path: trunk/Src/C
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 66631 - Directory Listing
Modified Tue Feb 13 11:28:29 2007 UTC (12 years, 9 months ago) by alexk
Original Path: trunk/Src/C
Changed EOL style to workaround inability of the recent version of bash to process CRLF.

Revision 66628 - Directory Listing
Modified Tue Feb 13 10:48:06 2007 UTC (12 years, 9 months ago) by alexk
Original Path: trunk/Src/C
Changed EOL style to workaround inability of the recent version of bash to process CRLF.

Revision 66530 - Directory Listing
Modified Thu Feb 8 09:58:35 2007 UTC (12 years, 9 months ago) by jfiat
Original Path: trunk/Src/C
- The Objects tool will now display all once routines under the "Once routines" row.
This includes functions and procedure.

Revision 66515 - Directory Listing
Modified Wed Feb 7 23:17:39 2007 UTC (12 years, 10 months ago) by manus
Original Path: trunk/Src/C
Added missing EIF_MIPS_64 architecture.
Added missing definition of EIF_OS and EIF_ARCH in some of our supported configurations.


Revision 66449 - Directory Listing
Modified Sat Feb 3 19:13:08 2007 UTC (12 years, 10 months ago) by manus
Original Path: trunk/Src/C
Added /usr/local/include so that one can find `iconv' headers since they are not installed
  in /usr/include on OpenBSD.


Revision 66448 - Directory Listing
Modified Sat Feb 3 19:07:29 2007 UTC (12 years, 10 months ago) by manus
Original Path: trunk/Src/C
Fixed bug#11744 where storables made on 64-bit platforms could sometime not be retrieved
  on 32-bit systems when their 8-byte value does not fit on 4-byte and two addresses have
  the same lower 4-bytes. The solution is to translate all addresses above 0x7FFFFFFF into
  a generated address 0xF....... and leave the one below as is. This enables keeping a very
  good performance when they are all below.
Revisited `ht_create' so that it does what we were doing before by calling `ht_zero' just
  after the creation. It fixes an issue when calling `ht_xtend' which would not reset the new
  values to 0 and causes some problem if one is using `ht_first'.
Removed the RECOVERABLE_SCAFFOLDING conditonal since we are always in this mode now.


Revision 66355 - Directory Listing
Modified Tue Jan 30 11:09:45 2007 UTC (12 years, 10 months ago) by jfiat
Original Path: trunk/Src/C
Fixed bug#11931 : Can't slice SPECIAL[SPECIAL[]]
Now we handle SPECIAL [SPECIAL [...]] before it was transfered as  SPECIAL [Reference_value] (at the debugger level)

Revision 66338 - Directory Listing
Modified Tue Jan 30 02:13:47 2007 UTC (12 years, 10 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#tuple006 and bugs bug#11848 and bug#11939 which was due to a bug with
  TUPLE.deep_twin which would cause some memory to be overriden causing a crash. The error
  was in `rdeepclone' where we did not use the `enclosing' TUPLE object but the current
  location during the traversal of the enclosing tuple object. So when a remembering needed
  to be done between the new object and the old one (the TUPLE), instead of writing to the
  TUPLE header object, we were overriding the TUPLE previous element.


Revision 66300 - Directory Listing
Modified Fri Jan 26 20:07:27 2007 UTC (12 years, 10 months ago) by manus
Original Path: trunk/Src/C
Added reference to BC_CLONE_ARG as otherwise we may think it is not used.


Revision 66257 - Directory Listing
Modified Thu Jan 25 23:03:39 2007 UTC (12 years, 10 months ago) by manus
Original Path: trunk/Src/C
In some scenarios, we can't even print something on the console without causing a panic, in such
   cases it would end up in an infinite recursion. To prevent that, we have added one more level
   to `done' in `eif_panic' so that when it reaches this level we don't even try to print, but
   exit directly.


Revision 65614 - Directory Listing
Modified Mon Dec 18 19:43:55 2006 UTC (12 years, 11 months ago) by manus
Original Path: trunk/Src/C
Fixed a crash when using another GC implementation than the ISE one and that you have
  the profiler enabled, it would crash at the very end of the execution because of a double
  free.


Revision 65613 - Directory Listing
Modified Mon Dec 18 19:12:01 2006 UTC (12 years, 11 months ago) by manus
Original Path: trunk/Src/C
Ensured that it will link when using something else than the ISE GC in workbench mode.
  However the code is not thread safe anymore, since we have no global synchronization anymore,
  but this only affects when run under the EiffelStudio debugger.


Revision 65467 - Directory Listing
Modified Mon Dec 11 16:00:32 2006 UTC (12 years, 11 months ago) by jfiat
Original Path: trunk/Src/C
comments

Revision 65295 - Directory Listing
Modified Thu Nov 30 19:37:16 2006 UTC (13 years ago) by king
Original Path: trunk/Src/C
Corrected EIF_ARCH setting

Revision 65294 - Directory Listing
Modified Thu Nov 30 19:34:12 2006 UTC (13 years ago) by king
Original Path: trunk/Src/C
Updated eif_os names to be more specific

Revision 65286 - Directory Listing
Modified Thu Nov 30 02:10:56 2006 UTC (13 years ago) by king
Original Path: trunk/Src/C
Added predefined EIF_OS and EIF_ARCH integer macros

Revision 65285 - Directory Listing
Modified Thu Nov 30 02:10:13 2006 UTC (13 years ago) by king
Original Path: trunk/Src/C
Updated EIF_OS and EIF_ARCH to use predefined integer macros as string literal comparison is not possible with C preprocessor

Revision 65284 - Directory Listing
Modified Thu Nov 30 00:40:22 2006 UTC (13 years ago) by king
Original Path: trunk/Src/C
Added values for EIF_OS and EIF_ARCH

Revision 65283 - Directory Listing
Modified Thu Nov 30 00:39:20 2006 UTC (13 years ago) by king
Original Path: trunk/Src/C
Added EIF_OS and EIF_ARCH values for macro generation

Revision 65282 - Directory Listing
Modified Thu Nov 30 00:37:43 2006 UTC (13 years ago) by king
Original Path: trunk/Src/C
Added dummy eif_os and eif_arch values for config.sh generation

Revision 65261 - Directory Listing
Modified Tue Nov 28 17:15:07 2006 UTC (13 years ago) by juliant
Original Path: trunk/Src/C
added macros and functions related to floating point infinity and NaN

Revision 65211 - Directory Listing
Modified Thu Nov 23 10:08:50 2006 UTC (13 years ago) by jfiat
Original Path: trunk/Src/C
cosmetic + fixed typo

Revision 65210 - Directory Listing
Modified Thu Nov 23 10:05:28 2006 UTC (13 years ago) by jfiat
Original Path: trunk/Src/C
Code cosmetic.

Revision 65209 - Directory Listing
Modified Thu Nov 23 10:01:07 2006 UTC (13 years ago) by jfiat
Original Path: trunk/Src/C
Fixed issue in IPC protocol.

Revision 65162 - Directory Listing
Modified Tue Nov 21 01:23:25 2006 UTC (13 years ago) by konradm
Original Path: trunk/Src/C
Removed a bug that caused preconditions to be checked during an assertion check.

Revision 65026 - Directory Listing
Modified Mon Nov 13 23:36:14 2006 UTC (13 years ago) by patrickr
Original Path: trunk/Src/C
Use ISE_LIB_NAME variable to be able to set lib or lib64 as the directory name for the lib dir.


Revision 64929 - Directory Listing
Modified Thu Nov 9 18:11:05 2006 UTC (13 years ago) by martins
Original Path: trunk/Src/C
Fixed a bug which caused an eiffel system to crash or giving wrong information when
   using a generic root class.
Moved `generate_block_open' and `generate_block_close' from class `BYTE_NODE' into
   the class `GENERATION_BUFFER' where it fits better and thus simplifies the code.

Revision 64927 - Directory Listing
Modified Thu Nov 9 17:44:57 2006 UTC (13 years ago) by martins
Original Path: trunk/Src/C
Made get_compound_id `rt_shared' since it will be now used in `update.c'.
Fixed `get_compound_id' to not use the interpreter stack to get the current
  object since this object is given as argument. Thus `get_compound_id' only
  relies on the byte code IC and not on the interpreter internals.

Revision 64911 - Directory Listing
Modified Thu Nov 9 00:36:43 2006 UTC (13 years ago) by konradm
Original Path: trunk/Src/C
- Added compiler support for supplier preconditions.
- In finalized code the dynamic type is now used to detect whether assertions need to be checked.
- Implemented invariant checking in finalized code.
- Changed ecf files of libraries to not have any assertion checking.

Revision 64880 - Directory Listing
Modified Wed Nov 8 04:32:08 2006 UTC (13 years, 1 month ago) by manus
Original Path: trunk/Src/C
Made compilable on Unix since to be correct we need to include <sys/types.h> in order
 to define the `pid_t' type.


Revision 64839 - Directory Listing
Modified Tue Nov 7 05:22:40 2006 UTC (13 years, 1 month ago) by manus
Original Path: trunk/Src/C
Fixed config files so that it compiles on Windows.


Revision 64832 - Directory Listing
Modified Tue Nov 7 00:06:01 2006 UTC (13 years, 1 month ago) by patrickr
Original Path: trunk/Src/C
Added some new configuration variables that allow a unix like layout
 rt_version (6.0) version of the runtime
 rt_include (/usr/local/include/eiffel6.0) location of the runtime includes
 rt_lib (/usr/local/lib/eiffel6.0) location of the runtime library
 rt_templates (/usr/local/share/eiffel6.0/ec/config/unix/templates) location of the runtime templates
 x2c (/usr/lib/eiffel6.0/ec/x2c) location of the x2c tool


Revision 64781 - Directory Listing
Modified Fri Nov 3 10:04:39 2006 UTC (13 years, 1 month ago) by alexk
Original Path: trunk/Src/C
Clarified why we need a dedicated loop for SPECIAL with expanded objects in `refers_new_object'.

Revision 64779 - Directory Listing
Modified Fri Nov 3 01:52:26 2006 UTC (13 years, 1 month ago) by davids
Original Path: trunk/Src/C
VMS specific changes (these should all be migrated to 5.7 branch)

eif_portable.h: Removed some VMS specific definitions (anything that can occur after the #includes) from eif_portable.h and placed in (new file) eif_vmsdef.h. Added definitions to deal with 32/64 bit issues on VMS.





Revision 64775 - Directory Listing
Modified Thu Nov 2 21:27:34 2006 UTC (13 years, 1 month ago) by manus
Original Path: trunk/Src/C
Removed usage of `eif_getenv' and replaced it with `getenv' if needed.


Revision 64774 - Directory Listing
Modified Thu Nov 2 21:27:04 2006 UTC (13 years, 1 month ago) by manus
Original Path: trunk/Src/C
Removed building of ebench.lib and mtebench.lib.


Revision 64755 - Directory Listing
Modified Wed Nov 1 23:05:46 2006 UTC (13 years, 1 month ago) by patrickr
Original Path: trunk/Src/C
Remove executable prop.


Revision 64754 - Directory Listing
Modified Wed Nov 1 23:04:02 2006 UTC (13 years, 1 month ago) by patrickr
Original Path: trunk/Src/C
Remove executable prop.


Revision 64753 - Directory Listing
Modified Wed Nov 1 23:03:09 2006 UTC (13 years, 1 month ago) by patrickr
Original Path: trunk/Src/C
Removed executable flags.


Revision 64731 - Directory Listing
Modified Wed Nov 1 10:49:39 2006 UTC (13 years, 1 month ago) by alexk
Original Path: trunk/Src/C
Made a minor optimization.

Revision 64688 - Directory Listing
Modified Tue Oct 31 14:30:28 2006 UTC (13 years, 1 month ago) by alexk
Original Path: trunk/Src/C
Corrected processing of SPECIAL containing expanded object in refers_new_object (this fixes test#runtime003).

Revision 64654 - Directory Listing
Modified Mon Oct 30 17:55:48 2006 UTC (13 years, 1 month ago) by patrickr
Original Path: trunk/Src/C
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 64576 - Directory Listing
Modified Wed Oct 25 00:44:58 2006 UTC (13 years, 1 month ago) by manus
Original Path: trunk/Src/C
Removed side effect of `get' from EXECUTION_ENVIRONMENT which would also check
  the registry keys to locate environment variable. Now it only check the environment
  variables.


Revision 64541 - Directory Listing
Modified Tue Oct 24 17:23:50 2006 UTC (13 years, 1 month ago) by jfiat
Original Path: trunk/Src/C
- added a SHARED_DEBUGGER_MANAGER, renamed eb_shared_debug_tools as eb_shared_debugger_manager
- moved core debugger's files under Src/Eiffel/switch/...
- created cli_debugger.ecf library (will be moved under framework very soon)
  and separated cli_debugger from cli_writer (clib)
- refactored DUMP_VALUE to take into account the NATURAL_XY values, and improved lightly the DUMP_VALUE creation using a DUMP_VALUE_FACTORY which permits to create DUMP_VALUE or DUMP_VALUE_BASIC according to the value's type without changing too much code.
- renamed many feature to use explicit INTEGER_32 instead of INTEGER, REAL_64 instead of DOUBLE and so on ...
- simplified the dotnet classes related to manisfest debug value creation. (set_item procedure and so on ...)
- minimize dependencies between core debugger and graphical classes.
- runtime: now we get back the process id when the debugger launchs the application
- runtime: made code safer to get the exception message (if the required id is invalid .. should not occurs but...)
- Added contextual menu on breakpoints tool
- Added warning message when a cond breakpoint stopped on expression evaluation failure
- various improvement and code cleaning





Revision 64356 - Directory Listing
Modified Fri Oct 13 04:38:24 2006 UTC (13 years, 1 month ago) by manus
Original Path: trunk/Src/C
Fixed bug#11531 where invariants where not checked on agent calls when the
  agent was a melted one (i.e. code was never frozen).


Revision 64331 - Directory Listing
Modified Thu Oct 12 17:05:43 2006 UTC (13 years, 1 month ago) by davids
Original Path: trunk/Src/C
update VMS makefiles

Revision 64283 - Directory Listing
Modified Wed Oct 11 09:47:15 2006 UTC (13 years, 1 month ago) by jfiat
Original Path: trunk/Src/C
Fixed minor issue in spawn_child signature

Revision 64282 - Directory Listing
Modified Wed Oct 11 09:21:00 2006 UTC (13 years, 1 month ago) by jfiat
Original Path: trunk/Src/C
- Redesigned Debugging option dialog/control
- now we store debugging profiles instead of just arguments
- Simplified part of debugging grid's implementation related to es_grid_row_controller (and added key action on this controller)
- Removed useless stored data for dotnet debugger (now pass directly the various parameter when launching the application)
- We are now able to specify the environment variables for the debuggee (application)



Revision 64270 - Directory Listing
Modified Tue Oct 10 22:53:29 2006 UTC (13 years, 1 month ago) by manus
Original Path: trunk/Src/C
Merged from Eiffel_57:
  Removed need for resource file since we consider ecdbgd as an helper tool not as a
  true application with an icon.


Revision 64248 - Directory Listing
Modified Tue Oct 10 16:09:08 2006 UTC (13 years, 1 month ago) by manus
Original Path: trunk/Src/C
Added support for CHARACTER_32 for TUPLEs and INTERNAL. Use consistent naming.


Revision 63938 - Directory Listing
Modified Thu Sep 28 15:16:48 2006 UTC (13 years, 2 months ago) by manus
Original Path: trunk/Src/C
Migrate runtime to 6.0 version.


Revision 63872 - Directory Listing
Modified Tue Sep 26 08:52:30 2006 UTC (13 years, 2 months ago) by alexk
Original Path: trunk/Src/C
Reverted the change for RTEQ macro to support the case when one of the operands is Void (this fixes test#final022, test#exec035, test#set001a, test#set003, test#set004 broken by the previous change).

Revision 63857 - Directory Listing
Modified Mon Sep 25 21:53:59 2006 UTC (13 years, 2 months ago) by manus
Original Path: trunk/Src/C
Completed last fix.


Revision 63856 - Directory Listing
Modified Mon Sep 25 21:52:05 2006 UTC (13 years, 2 months ago) by manus
Original Path: trunk/Src/C
Fixed bug#11396 and eweasel test#exec222 and test#exec261 which would fail on big endian
 machine because now for all type of INTEGER_X/NATURAL_X (X <= 32) range we generate a
 NATURAL_32/INTEGER_32 value. So this means that one has to convert the character being
 inspected in a NATURAL_32/INTEGER_32 value before doing any comparison .


Revision 63833 - Directory Listing
Modified Mon Sep 25 16:24:21 2006 UTC (13 years, 2 months ago) by jfiat
Original Path: trunk/Src/C
Minor change: Fixed C compilation warning about `dthread_id_saved'

Revision 63832 - Directory Listing
Modified Mon Sep 25 16:18:10 2006 UTC (13 years, 2 months ago) by jfiat
Original Path: trunk/Src/C
fixed bug#3956: Expression `a.b' where `a' is of an expanded type and `b' is attribute gives error
Mainly fixed debugger support for expanded object values.
Now we try to assign an address to an expanded value whenever this is possible
This allows us to evaluate expression on expanded value, or even retrieve its attributes when it is possible.
When expanded value are contained by a SPECIAL object, we retrieve the immediate attributes right away (because expanded inside special can be accessed only by providing the special object and the related index).
+ cosmetic

Revision 63830 - Directory Listing
Modified Mon Sep 25 12:19:57 2006 UTC (13 years, 2 months ago) by alexk
Original Path: trunk/Src/C
Changed comparison for expanded objects to use a redefined version of `is_equal' instead of a standard one.

Revision 63822 - Directory Listing
Modified Sat Sep 23 01:17:40 2006 UTC (13 years, 2 months ago) by manus
Original Path: trunk/Src/C
Fixed bug#11386 and eweasel test#exec141 which would fail on big endian machine because now for
  all type of character range we generate a CHARACTER_32. So this means that one has to convert
  the character being inspected in a CHARACTER_32 before doing any comparison.


Revision 63771 - Directory Listing
Modified Thu Sep 21 16:23:07 2006 UTC (13 years, 2 months ago) by jfiat
Original Path: trunk/Src/C
fixed bug#11281: Every workbench system execution leaves one more defunct process. This is fixed by waiting the child

Revision 63627 - Directory Listing
Modified Mon Sep 18 08:50:08 2006 UTC (13 years, 2 months ago) by jfiat
Original Path: trunk/Src/C
removed unwanted debug output.

Revision 63626 - Directory Listing
Modified Mon Sep 18 08:47:56 2006 UTC (13 years, 2 months ago) by jfiat
Original Path: trunk/Src/C
fixed bug#4765 : empty argument is ignored for debugging. This was occurring only on unices systems.

Revision 63605 - Directory Listing
Modified Fri Sep 15 19:06:42 2006 UTC (13 years, 2 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#melt075 and bug#11286 where interpreter did not allow range of
  CHARACTER_32 type.


Revision 63546 - Directory Listing
Modified Wed Sep 13 18:46:28 2006 UTC (13 years, 2 months ago) by konradm
Original Path: trunk/Src/C
Correction for PR #11133.

Revision 63544 - Directory Listing
Modified Wed Sep 13 18:42:33 2006 UTC (13 years, 2 months ago) by konradm
Original Path: trunk/Src/C
Correction to PR #11239 and PR #11239 covered by eweasel test incr274

Revision 63524 - Directory Listing
Modified Tue Sep 12 23:03:53 2006 UTC (13 years, 2 months ago) by davids
Original Path: trunk/Src/C


Revision 63502 - Directory Listing
Modified Tue Sep 12 16:38:07 2006 UTC (13 years, 2 months ago) by konradm
Original Path: trunk/Src/C
Corrected meltdump.exe to correctly interpret BCDB_UNNAMED 

Revision 63397 - Directory Listing
Modified Fri Sep 8 16:51:13 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
To avoid generation of __fixunssfdi and __fixunsdfdi which don't seem to be on all
  platforms eventhough they use the same gcc version as us, we now cast to INTEGER_64
  and then to NATURAL_64. The semantic is quite different since the gcc semantic is
  to convert negative values to 0, whereas here it will be non-zero which possibly
  makes more sense. Anyway this code is not called yet, since in the Eiffel source code
  there is no conversion from REAL_32 or REAL_64 to NATURAL_64.


Revision 63352 - Directory Listing
Modified Thu Sep 7 19:11:14 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Removed CONCURRENT_EIFFEL since it is not working anymore.


Revision 63351 - Directory Listing
Modified Thu Sep 7 19:09:39 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Removed CONCURRENT_EIFFEL since it is not working anymore.


Revision 63350 - Directory Listing
Modified Thu Sep 7 19:08:44 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Removed CONCURRENT_EIFFEL since it is not working anymore.


Revision 63349 - Directory Listing
Modified Thu Sep 7 19:07:04 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Removed CONCURRENT_EIFFEL since it is not working anymore.


Revision 63348 - Directory Listing
Modified Thu Sep 7 19:06:25 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Removed CONCURRENT_EIFFEL specific code since this is not working anymore.


Revision 63125 - Directory Listing
Modified Wed Aug 30 17:25:25 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Removed definition of _DEBUG which was inadvertently integrated at last commit.


Revision 63103 - Directory Listing
Modified Wed Aug 30 00:44:22 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Removed ignoring of SIGCHLD since it causes the bug#10930 each time we launch the debugger.
I'm not sure if we need to do anything with the other signals, but I haven't changed that
for now.


Revision 63076 - Directory Listing
Modified Tue Aug 29 16:38:48 2006 UTC (13 years, 3 months ago) by konradm
Original Path: trunk/Src/C
corrected wrong commit

Revision 63075 - Directory Listing
Modified Tue Aug 29 16:33:46 2006 UTC (13 years, 3 months ago) by konradm
Original Path: trunk/Src/C
Changed usage of clone to twin and added an invariant

Revision 63047 - Directory Listing
Modified Tue Aug 29 08:05:50 2006 UTC (13 years, 3 months ago) by jfiat
Original Path: trunk/Src/C
Fixed potential buffer overflow on `event_str' which was too small to hold the semaphore name.

Revision 63033 - Directory Listing
Modified Mon Aug 28 21:51:41 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Added call to `_set_security_error_handler' so that we can trap those errors at runtime
  and still be able to debug it. Without it, the application terminates right away.


Revision 63031 - Directory Listing
Modified Mon Aug 28 21:49:31 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Added call to `_set_security_error_handler' so that we can trap those errors at runtime
  and still be able to debug it. Without it, the application terminates right away.


Revision 63028 - Directory Listing
Modified Mon Aug 28 21:33:03 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed buffer overflow.


Revision 63022 - Directory Listing
Modified Mon Aug 28 19:40:07 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed buffer overflow on `event_str' which was too small to hold the semaphore name.


Revision 62989 - Directory Listing
Modified Sat Aug 26 01:03:36 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed bug#10231 where `mem_free' could enter in conflict with some third party libraries.
  We have renamed all C externals appearing in MEMORY, MEM_INFO and GC_INFO to start
  with `eif_'.


Revision 62988 - Directory Listing
Modified Sat Aug 26 01:00:03 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed a warning because casting is not correct. The good news is that it will be removed next week
  when everyone will have upgraded to the new release.


Revision 62883 - Directory Listing
Modified Wed Aug 23 01:36:00 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed bug#3387 where the GC would be reactivated after calling `referers' from MEMORY
  if it has been deactivated before.


Revision 62867 - Directory Listing
Modified Tue Aug 22 17:15:00 2006 UTC (13 years, 3 months ago) by patrickr
Original Path: trunk/Src/C
refactored debug_level a bit (specifies which debug clauses are enabled), debug level now supports the same as the configuration and project settings (unnamed debug clauses can be enabled/disabled independent), fixes bug#11032 test#config006

Revision 62852 - Directory Listing
Modified Tue Aug 22 14:02:44 2006 UTC (13 years, 3 months ago) by alexk
Original Path: trunk/Src/C
Added new byte code to box TYPED_POINTER object preserving type information (this affects test#store009).

Revision 62823 - Directory Listing
Modified Mon Aug 21 21:52:24 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed bug#11033 where profiling a system which is using a precompiled library and never
  frozen would always try to save its `profinfo' file in the W_code of the precompiled library
  instead of the current working directory if `MELT_PATH' is not defined.


Revision 62818 - Directory Listing
Modified Mon Aug 21 19:36:06 2006 UTC (13 years, 3 months ago) by konradm
Original Path: trunk/Src/C
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 62722 - Directory Listing
Modified Fri Aug 18 12:19:00 2006 UTC (13 years, 3 months ago) by jfiat
Original Path: trunk/Src/C
Fixed postcondition violation in IPC_ENGINE, fixed is_ecdbgd_alive in ewb_init.c
Fixed starting_dialog with the annoying check button being active on all the width of the dialog, 
now to disable/enable the check button for the display, we need to click on the text (or the check box)

Revision 62622 - Directory Listing
Modified Wed Aug 16 19:53:19 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Now `egc_address_table' has only one indirection.


Revision 62616 - Directory Listing
Modified Wed Aug 16 16:25:15 2006 UTC (13 years, 3 months ago) by jfiat
Original Path: trunk/Src/C
fixed bug#10869 : Estudio times out launching system after diagramming class ANY
and also other debugger launching issues on linux. (such as bug#10931)



Revision 62546 - Directory Listing
Modified Mon Aug 14 22:04:46 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#ccomp054 which would fail because `cppflags' was not recursively
  evaluating ccflags when used in ' instead of ".


Revision 62526 - Directory Listing
Modified Mon Aug 14 16:07:53 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Removed declaration of TIMEOUT, since we get it from the runtime.


Revision 62493 - Directory Listing
Modified Mon Aug 14 04:18:17 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Use `gcc' since `cc' may not be present.


Revision 62468 - Directory Listing
Modified Sat Aug 12 15:17:01 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#exec248 for min/max on real/double values representing  NaN.


Revision 62460 - Directory Listing
Modified Sat Aug 12 00:52:35 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed issue with `min' and `max' on real numbers when they represent a NaN. When NaN is
  either Current or other, we should return NaN, but this was not the case. This fixes
  eweasel test#exec248.


Revision 62457 - Directory Listing
Modified Sat Aug 12 00:47:20 2006 UTC (13 years, 3 months ago) by konradm
Original Path: trunk/Src/C
Removed // - style comments from c files

Revision 62447 - Directory Listing
Modified Fri Aug 11 23:18:55 2006 UTC (13 years, 3 months ago) by konradm
Original Path: trunk/Src/C
- 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 62434 - Directory Listing
Modified Fri Aug 11 17:36:47 2006 UTC (13 years, 3 months ago) by jfiat
Original Path: trunk/Src/C
Prevent application crashs caused by debugger when the hector address is not correct
This partially fix bug#10876 : Putting watch expression on BIT_REF hangs estudio
by avoiding a bad crash of debuggee and EiffelStudio.

It appears the metamorphosed BIT into argument BIT_REF use a special object address 
which is valid only inside the current feature, when stepping into io ... 
the same address is used for variable 'Result'
and then messed up the debuggee and debugger.

We must find a way to prevent the debugger from keeping this kind of reference
or to check why the same address is used (maybe missing an hectorisation ...)

Revision 62384 - Directory Listing
Modified Thu Aug 10 10:14:47 2006 UTC (13 years, 3 months ago) by jfiat
Original Path: trunk/Src/C
fixed bug#10021 : issue with cond breakpoint and stepping over acting like continue

Revision 62368 - Directory Listing
Modified Wed Aug 9 22:18:45 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed a memory corruption due to a double call to `close_stream' on a stream already closed.


Revision 62367 - Directory Listing
Modified Wed Aug 9 22:17:43 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Fixed `rqst_handler_to_c' to actually free the eiffel objects. There was a bug were we thought
  that `eif_rqst_hdler' could be Void, but it is not, the objects it refers to may be Void.


Revision 62364 - Directory Listing
Modified Wed Aug 9 21:12:39 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/C
Made sure to reset C variables to NULL after calling `eif_wean' to show that the Eiffel
  objects cannot be accessed.


Revision 62244 - Directory Listing
Modified Thu Aug 3 13:08:47 2006 UTC (13 years, 4 months ago) by alexk
Original Path: trunk/Src/C
Supported equality test that takes into account dynamic type of objects involved in the comparison to choose between reference and expanded semantics.

Revision 62242 - Directory Listing
Modified Thu Aug 3 12:42:47 2006 UTC (13 years, 4 months ago) by alexk
Original Path: trunk/Src/C
Added a byte code operation to perform equality test depending on the dynamic type of objects.

Revision 62241 - Directory Listing
Modified Thu Aug 3 09:41:32 2006 UTC (13 years, 4 months ago) by alexk
Original Path: trunk/Src/C
Added a variable to keep a pointer to {ANY}.equal that will be used to perform object comparison.

Revision 62110 - Directory Listing
Modified Sun Jul 30 06:47:52 2006 UTC (13 years, 4 months ago) by manus
Original Path: trunk/Src/C
Fixed typo which strangely did not prevent it to be compiled using other C compilers
  but Borland.


Revision 61722 - Directory Listing
Modified Fri Jul 28 15:53:15 2006 UTC (13 years, 4 months ago) by jfiat
Original Path: trunk/Src/C
removed commented code.

Revision 61720 - Directory Listing
Modified Fri Jul 28 15:12:07 2006 UTC (13 years, 4 months ago) by jfiat
Original Path: trunk/Src/C
Fixed bug#10778 : Debugger hangs, crashes or won't launch program execution
Some cleaning on the ewb side was not done properly when ecdbgd is closing.
+ improve slightly the code to make if safer and cleaner regarding stream manipulation

Revision 61719 - Directory Listing
Modified Fri Jul 28 08:24:18 2006 UTC (13 years, 4 months ago) by jfiat
Original Path: trunk/Src/C
Debugger: Unified a little bit how we interrupt and add breakpoint during execution
Now it is also possible on unices to add an effective breakpoint even when the debuggee is not stopped

Revision 61679 - Directory Listing
Modified Thu Jul 27 10:11:19 2006 UTC (13 years, 4 months ago) by jfiat
Original Path: trunk/Src/C
Fixed crash issue when expression evaluation (on classic) raised an exception.
This was due to "exception trace" sending over the IPC protocol (the packet was too big to be sent in one id_string)
Now, we retrieve the exception trace only if needed, and we split the big string. We do not create an Eiffel STRING on the application side to avoid perturbing the debuggee with debugging purpose data.

+ various minor changes

Revision 61614 - Directory Listing
Modified Tue Jul 25 00:41:21 2006 UTC (13 years, 4 months ago) by manus
Original Path: trunk/Src/C
Implemented suggestion of bug#10582 to override some settings for C compilation flags
  and which `make' file is being used.


Revision 61609 - Directory Listing
Modified Tue Jul 25 00:15:07 2006 UTC (13 years, 4 months ago) by manus
Original Path: trunk/Src/C
Changed `Configure' so that we generate tests for cc, cpp, make, ccflags and cppflags
  whose values can be overridden by defining CC, CPP, MAKE, CFLAGS or CPPFLAGS environment
  variable.


Revision 61571 - Directory Listing
Modified Mon Jul 24 12:22:22 2006 UTC (13 years, 4 months ago) by jfiat
Original Path: trunk/Src/C
Added a way to clear breakpoints' table on the debuggee (application)
This is added to the IPC protocol, and may help resolving ghost breakpoints
+ cosmetic

Revision 61400 - Directory Listing
Modified Mon Jul 17 23:30:23 2006 UTC (13 years, 4 months ago) by manus
Original Path: trunk/Src/C
Undo last changes because it would not work on .NET.


Revision 61398 - Directory Listing
Modified Mon Jul 17 22:41:02 2006 UTC (13 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added `eifnet_errno' so that each threads of EiffelNet can know the last value
  of `errno' for the last EiffelNet C call.


Revision 61390 - Directory Listing
Modified Mon Jul 17 21:04:46 2006 UTC (13 years, 4 months ago) by jasonw
Original Path: trunk/Src/C
Stored environment variable pointer envp (which is passed in as the third argument in main function) in a parameter eif_environ.

Revision 61377 - Directory Listing
Modified Mon Jul 17 15:49:12 2006 UTC (13 years, 4 months ago) by manus
Original Path: trunk/Src/C
Forced incorrect signatures.


Revision 61357 - Directory Listing
Modified Fri Jul 14 23:39:36 2006 UTC (13 years, 4 months ago) by manus
Original Path: trunk/Src/C
Made `eif_pre_ecma_mapping_status' a once per thread to avoid threading issues.


Revision 61340 - Directory Listing
Modified Fri Jul 14 15:13:27 2006 UTC (13 years, 4 months ago) by manus
Original Path: trunk/Src/C
Moved `safe_dbreak' declaration to private header file.
Removed `fprintf' statement.


Revision 61337 - Directory Listing
Modified Fri Jul 14 13:56:23 2006 UTC (13 years, 4 months ago) by jfiat
Original Path: trunk/Src/C
Simplifed the processing of debugger interruption (to pause or add a breakpoint)

Revision 61335 - Directory Listing
Modified Fri Jul 14 08:44:48 2006 UTC (13 years, 4 months ago) by jfiat
Original Path: trunk/Src/C
Fixed issue on unix: Stop/Interrupt does not stop the debuggee execution
This was due to a dead lock regarding DBGMUTEX_LOCK ...
Indeed when dinterrupt() is called, it already has the DBGMUTEX locked, and dinterrupt() was calling  
dbreak(...) which attempt to DBGMUTEX_LOCK.
To fix this, safe_dbreak(..) is not rt_shared, and we use it inside dinterrupt() instead of using dbreak().

Revision 61290 - Directory Listing
Modified Thu Jul 13 17:39:47 2006 UTC (13 years, 4 months ago) by manus
Original Path: trunk/Src/C
Added protection in `esresume' so that we do not call `sync_registers' when `context->dc_cur' is null
  since `sync_registers' would crash in that case. Added protection `context->dc_top' as well although
  `sync_registers' is not dependent on the value being null or not, but looking at the code it seems
  that it should not be null.


Revision 61117 - Directory Listing
Modified Mon Jul 10 14:55:41 2006 UTC (13 years, 4 months ago) by manus
Original Path: trunk/Src/C
Updated path to BCC55 directory.
Fixed incorrect value for `d_syserrlst' which is also define in Borland.


Revision 61116 - Directory Listing
Modified Mon Jul 10 12:34:57 2006 UTC (13 years, 4 months ago) by alexk
Original Path: trunk/Src/C
Supported reverse attachment to entities of expanded (and formal generic) type.

Revision 61048 - Directory Listing
Modified Fri Jul 7 16:59:18 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Removed non-used BC_JAVA_XXX opcodes.
Updated MAX_CODE to be BC_PTUPLE.


Revision 60975 - Directory Listing
Modified Wed Jul 5 14:15:17 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Removed non-ANSI C style comments.


Revision 60970 - Directory Listing
Modified Wed Jul 5 06:03:39 2006 UTC (13 years, 5 months ago) by jfiat
Original Path: trunk/Src/C
Replace use of // with  /* .. */ to comment code
because some C compilers has troubles with //

Revision 60957 - Directory Listing
Modified Tue Jul 4 15:39:43 2006 UTC (13 years, 5 months ago) by jfiat
Original Path: trunk/Src/C
fixed issue with limited cleanup table.
Make sure we initialize the irdf (ewb, app, dbg) only once.

remove splash.bmp (from old estudio executable)

Revision 60929 - Directory Listing
Modified Mon Jul 3 17:55:46 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Actually syserrlist is defined in VC++ 6.0.


Revision 60927 - Directory Listing
Modified Mon Jul 3 17:41:24 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Removed definition of ADD_LOG since it caused some errors on some C preprocessors and also
  because it was not used.


Revision 60925 - Directory Listing
Modified Mon Jul 3 16:23:57 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Updated ignore to take into account renaming of estudio into ecdbgd.


Revision 60924 - Directory Listing
Modified Mon Jul 3 16:21:50 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Integrated newly generated Makefile.SH from recently modified Jmakefile on behalf of Jocelyn 60919's changes.


Revision 60923 - Directory Listing
Modified Mon Jul 3 16:20:42 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Fixed uninitialized local variable warning.


Revision 60919 - Directory Listing
Modified Mon Jul 3 16:01:20 2006 UTC (13 years, 5 months ago) by jfiat
Original Path: trunk/Src/C
Integrated new estudio/ec +ewb/ecdbgd/app architecture.
Now estudio is only a "ec" launcher (with splash screen)
ec will launches ecdbgd which is the eiffel classic debugger
and ecdbgd launches the debuggee (application)

so most of the time, only "ec" will be alive.

+ Improved error reporting when ec failed to launch ecdbgd and debuggee (application)
+ Added a menu item for debugging parameters

+ various code cleaning, and minor bugs corrections.

Revision 60791 - Directory Listing
Modified Thu Jun 29 18:56:49 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
To fix bug#10224 we need to let the GC believe that no Eiffel code is running when no DLL entry point
 is called. This is why when an entry point is called, we need to synchronize the GC if needed and to say
 that we are entering Eiffel code, and when the entry point is done, we exit the Eiffel code.


Revision 60776 - Directory Listing
Modified Thu Jun 29 17:40:50 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Added `rt_interp.h' for declaration of `dynamic_eval'.


Revision 60775 - Directory Listing
Modified Thu Jun 29 17:36:06 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Slightly modified `eif_thr_exit' so that it can be called when thread has not been created
  by the Eiffel runtime but by outside party. It is useful for CECIL or when Eiffel Code is
  used in a DLL.


Revision 60774 - Directory Listing
Modified Thu Jun 29 17:11:36 2006 UTC (13 years, 5 months ago) by konradm
Original Path: trunk/Src/C
Changed the 5th parameter of c function rout_obj_call_function_dynamic to get rid of a warning

Revision 60694 - Directory Listing
Modified Wed Jun 28 04:24:25 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Removed definition of DYNAMIC_LIB_RT_RECLAIM since it is not used.
Removed call to `init_rt' in `DYNAMIC_LIB_RT_INITIALIZE' as this cannot
  be done that way in multithreaded mode. See changed in `egc_dynlib.template'.


Revision 60661 - Directory Listing
Modified Tue Jun 27 21:21:35 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Because in `dynamic_eval_dbg' we already disable the debugger by doing `debug_mode = 0' we do
  not need to discard breakpoints (actually the previous version introduced a bug by not pairing
  `undiscard_breakpoints' with `discard_breakpoints').
Let `dynamic_eval' take care of the saving of IC which was improperly done in `dynamic_eval_dbg'.


Revision 60660 - Directory Listing
Modified Tue Jun 27 21:20:02 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Disable debugger when creating argument array.


Revision 60616 - Directory Listing
Modified Tue Jun 27 18:02:28 2006 UTC (13 years, 5 months ago) by konradm
Original Path: trunk/Src/C
- 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 60359 - Directory Listing
Modified Mon Jun 26 00:54:24 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Fixed issue with building runtime as a shared library on Windows.


Revision 60249 - Directory Listing
Modified Fri Jun 23 17:30:15 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Added mapping of old types STRING, INTEGER, ... to their new ECMA names
  STRING_8, INTEGER_32, ...


Revision 60248 - Directory Listing
Modified Fri Jun 23 17:01:25 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Made `debug_mode' private to runtime, added `is_debug_mode' instead to be used outside
  runtime.


Revision 60247 - Directory Listing
Modified Fri Jun 23 16:55:20 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Use `rt_main.h' instead of `server.h' to get definition of `debug_mode'.


Revision 60246 - Directory Listing
Modified Fri Jun 23 16:53:00 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Use `rt_main.h' to get definition of `debug_mode' instead of duplicating declaration in `server.h'.


Revision 60182 - Directory Listing
Modified Thu Jun 22 20:17:24 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Updated BC_GENERATOR to display the new ECMA names for basic types.


Revision 59854 - Directory Listing
Modified Fri Jun 16 04:17:54 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Disabled `TLS' optimization as not available by the GCC version on OpenBSD.


Revision 59853 - Directory Listing
Modified Fri Jun 16 03:53:37 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Fixed eweasel test#exec221 where if during a metamorphose in melted mode, it triggers
  a GC cycle, then if the GC cycle calls a melted dispose routine, then when the registers
  are resync by `sync_registers' it would crash because we were not restoring the right
  context, as a matter of fact we did not need to save the context at all, now the context
  is passed as argument to `metamorphose_top' so that it does the right thing.


Revision 59817 - Directory Listing
Modified Thu Jun 15 18:06:04 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Like for FreeBSD, we need to include `-lcompat' to get `ftime'.


Revision 59787 - Directory Listing
Modified Wed Jun 14 21:33:53 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Added new configuration file for OpenBSD.


Revision 59764 - Directory Listing
Modified Wed Jun 14 15:10:20 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
In workbench mode we should not include `ewb_proto' because we would conflict with the `app_proto'.
But in workbench mode for debugging, we need it, but it is added when building `libebench.a'.
However in finalized mode, we need it as it is not provided in libfinalized.a.


Revision 59758 - Directory Listing
Modified Wed Jun 14 14:30:21 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Added new configuration file for FreeBSD 6.0 on 64-bit platform.


Revision 59757 - Directory Listing
Modified Wed Jun 14 14:30:01 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Fixed missing `native' eol-style property.


Revision 59756 - Directory Listing
Modified Wed Jun 14 14:19:40 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
In workbench mode we should not include `ewb_proto' because we would conflict with the `app_proto'.
But in workbench mode for debugging, we need it, but it is added when building `libebench.a'.
However in finalized mode, we need it as it is not provided.


Revision 59732 - Directory Listing
Modified Tue Jun 13 21:56:27 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Fixed long time C compilation issue of the graphical version of the compiler in workbench mode.
  It was caused by multiple definition of symbols used both in ipc/app and ipc/ewb because when
  linking in workbench mode to be debugged, we do not need ipc/ewb/ewb_proto.o. But when we
  use `libebench.o' we need it.
  We use ipc.o instead of libipc.a because the semantic are different since a .a cannot be used
  in an archive to resolve symbol.


Revision 59729 - Directory Listing
Modified Tue Jun 13 21:33:31 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Ignore additional files for Unix.


Revision 59728 - Directory Listing
Modified Tue Jun 13 21:30:42 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Removed non-used local.


Revision 59712 - Directory Listing
Modified Tue Jun 13 18:24:06 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Clarified a little bit more the meaning of using `ebench.lib' and `ewb.lib' so that one
  can easily switch from wkbench.lib to ebench.lib in the workbench version of the compiler.
  Note this work was done on Windows, but it was meant to solve the workbench linking problem
  of the compiler which requires to invert EIFLIB and EXTERNALS.


Revision 59711 - Directory Listing
Modified Tue Jun 13 18:22:19 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Removed non-used reference to ipc.lib.


Revision 59694 - Directory Listing
Modified Tue Jun 13 15:21:02 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Use `-O3' for optimization instead of -O0 -g which was used for debugging only.


Revision 59669 - Directory Listing
Modified Tue Jun 13 04:12:40 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Fixed bug found when doing port on linux-sparc. The memory alignment
  was 8 bytes, but the size of `struct chunk' was not a multiple of 8.
  As a consequence, Eiffel addresses were never 8 bytes alignes, but 4.
  This causes a crash when calling `file_stat' from Eiffel using a SPECIAL
  as C memory area.


Revision 59628 - Directory Listing
Modified Sun Jun 11 17:31:22 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Added pedantic options.


Revision 59627 - Directory Listing
Modified Sun Jun 11 17:28:20 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/C
Initial version for Linux on Sparc.


Revision 59492 - Directory Listing
Modified Thu Jun 8 00:02:09 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed `file_rename' on Windows so that it really has the same behavior as `rename' on Unix platforms.
  The complicated part is to find out whether or not `from' and `to' represents the exact same file,
  if it does nothing has to be done, this is a no-op.

This fixes eweasel test#lib024



Revision 59490 - Directory Listing
Modified Wed Jun 7 23:07:02 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Renamed `xcopy' and `xequal' into `eif_xcopy' and `eif_xequal' as `xcopy' was causing some
  symbol conflicts under VxWorks.


Revision 59489 - Directory Listing
Modified Wed Jun 7 23:02:34 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Removed inclusion of `eif_equal.h' as it is not necessary anymore.


Revision 59488 - Directory Listing
Modified Wed Jun 7 22:44:47 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Increased initial stack size on VxWorks as 10000 seems too low.


Revision 59424 - Directory Listing
Modified Mon Jun 5 22:29:30 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Retrofitted changes we made in 5.4 for older release of RH 7.x in `eif_terminate_all_other_threads'
  would not reduce chances of a deadlock due to a bug in the thread library in RH 7.x.


Revision 59390 - Directory Listing
Modified Sat Jun 3 14:20:30 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Removed /DEBUG option by default.


Revision 59389 - Directory Listing
Modified Sat Jun 3 14:17:24 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Special treatment for options of `ec.exe' that ask for a path or a name with
  spaces in it. We surround the arguments with "".


Revision 59293 - Directory Listing
Modified Wed May 31 14:16:18 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Although `eifaddr' takes a EIF_REFERENCE (aka char *) it might not have the right type
  when the macro is expanded and this is why I've added a cast of `object' to `char *'
  to ensure the proper pointer arithmetic. It fixes eweasel test#exec048 which started
  to fail after the new inlining implementation.


Revision 59277 - Directory Listing
Modified Tue May 30 18:39:44 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Implemented suggestion to have definition of `cc' and `cpp' defined by environment variable.


Revision 59265 - Directory Listing
Modified Mon May 29 18:32:19 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Forgot include file for non-MSVC6 compilers.


Revision 59264 - Directory Listing
Modified Mon May 29 18:30:28 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Made `eif_home_directory_name' compile with MSV6.0.


Revision 59250 - Directory Listing
Modified Sun May 28 19:17:37 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Simplified way to open/create a project from `estudio.exe'. We only modify the command line
 if there is only one argument specified, in that case we assume it is the name of the configuration
 file. Otherwise, we simply copy arguments to the EiffelStudio command line without interpreting them.


Revision 59191 - Directory Listing
Modified Thu May 25 05:21:14 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed second problem shown by eweasel test#exec219 where conversion from SK_BOOL, SK_CHAR
  or SK_WCHAR to SK_INTXX or SK_NATXX would truncate the value to a 16 bits value because
  we forgot some `break;' instructions.


Revision 59174 - Directory Listing
Modified Wed May 24 20:41:47 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed test#exec219 where we were converting to EIF_CHARACTER instead of EIF_WIDE_CHAR
  for BC_CAST_CHAR_32.


Revision 59137 - Directory Listing
Modified Tue May 23 18:21:36 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Rewrote documentation about the HLIST_XXX macros to better explain how it works.
In `allocated_free_list' removed the code to avoid 0-sized object creation because
  there is no real guarantee that if there is a block in the `hlist[i]' entry it will
  be large enough to hold the requested size and thus violating the CHECK.
  So now we say that the likelyhood to have a 0-sized object when allocating an object
  whose size is greater than HLIST_SIZE_LIMIT is very low.


Revision 59136 - Directory Listing
Modified Tue May 23 16:30:04 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed a bug in `split_to_block' for bug#10387 where if nothing happened to the `ps_to' zone,
  that is to say no objects have been added to it, and that we have decided not to keep the
  `ps_to' zone, then we have to free it. Because we were not freeing it, it would make the
  GC thinks that it is a valid object.
  The reason we found the bug is because the content of zone->ov_flags had the EO_DISP set
  and the GC tried to call dispose on it, but since it is not a valid object, it was crashing
  either in trying to accessing the dynamic type, or trying to call polymorphically the dispose
  routine. Freeing the object, prevent the GC to actually look at its content and no bug anymore.


Revision 59129 - Directory Listing
Modified Mon May 22 21:52:48 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Ensured to have enough space even for the null character in `l_path' from `eif_home_directory_name'.


Revision 59069 - Directory Listing
Modified Fri May 19 00:51:27 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Implemented `eif_home_directory_name' on Windows to return the Local Settings\Application Data
  directory for the current user.


Revision 59023 - Directory Listing
Modified Wed May 17 16:52:24 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Initial configuration for the MacOS version on Intel platform.


Revision 59022 - Directory Listing
Modified Wed May 17 16:50:37 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Made `mkdep' always works as long as EIFFEL_SRC is defined.
If it is not defined that's ok, it will just not generate
the proper dependencies in the generated Makefile.


Revision 58976 - Directory Listing
Modified Tue May 16 04:28:48 2006 UTC (13 years, 6 months ago) by manus
Original Path: trunk/Src/C
Fixed issue where if in `clean_zones' the `ps_to' zone is almost full, but not
  quite (let's say one OVERHEAD bytes remains) then because objects are never
  0 sized, then we will never mark the `ps_to' zone has discardable since
  we haven't reach its end. As a consequence the compaction algorithm did not
  work properly.
  Now if the `ps_to' zone overflows during a collection, we will search for
  another `ps_to' zone in the next full collection.


Revision 58739 - Directory Listing
Modified Sun May 7 21:14:31 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/C
Removed creation of free version of the runtime since now we are GPLed.


Revision 58738 - Directory Listing
Modified Sun May 7 21:14:10 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/C
Removed FREELIB creation and cleanup since not needed now that we are GPLed.


Revision 58736 - Directory Listing
Modified Sun May 7 15:19:27 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/C
Removed non-commercial warning and splash screen (on windows) for runtime
  since now it is fully GPLed.


Revision 58691 - Directory Listing
Modified Thu May 4 18:44:23 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/C
Renamed ALIGN into EIF_ALIGN to avoid clash on OpenBSD.


Revision 58690 - Directory Listing
Modified Thu May 4 18:44:01 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/C
Use macros PADD and REMAINDER instead of `eif_padding' and `eif_remainder'.


Revision 58676 - Directory Listing
Modified Thu May 4 01:23:26 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/C
Prevented creation of objects of size 0. It causes them to be put in the free list
  at index 0 and since we have to do linear search in it to find an element it
  is very expensive.
In addition of the above, when allocating or reallocating, we might end up splitting
  a block in 2, the second part having a 0-size. Therefore it gets into the free list
  at index 0. Like above this could kill performance.
The data to backup this optimization is the following:
  - on the compiler we went from 226s down to 214s.
  - on a system with 6GB of allocated memory and about 1GB of garbage, we went from
    10000s for a full collect cycle down to 30s.
Use RT_SPECIAL_INFO_WITH_ZONE instead of doing computation ourself.


Revision 58662 - Directory Listing
Modified Tue May 2 23:53:05 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/C
Added comment in `eif_rt_split_block' to explain why we will split block
  if `r' is equal to OVERHEAD. Useful to prevent chasing bugs if someone
  is tempted to change that condition.


Revision 58647 - Directory Listing
Modified Tue May 2 19:31:56 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/C
Added MSVC++ 6.0 as option.
Added dll option for Microsoft C++ compiler to automatically update the config.sh file
  the expected way.


Revision 58645 - Directory Listing
Modified Tue May 2 19:06:05 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/C
Because very few users are actually using VC++ 6.0, we moved the configuration
  file into windows-msc6-x86. The new configuration file has been made to work
  with VC++ 2005 and has not been tested with earlier revisions.


Revision 58389 - Directory Listing
Modified Fri Apr 21 17:54:12 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/C
Reduced number of bytes on which block comparison is done in `spiso' when
  we have a special of basic types: we only compare `count' elements, not
  all the allocated size. This is ok to do that because we compare `count'
  and `elem_size' before doing the block comparison and the bytes between
  (count * elem_size) and s_size are meaningless.


Revision 58386 - Directory Listing
Modified Fri Apr 21 06:09:09 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/C
Use the same way to build eif_size.h as done in eif_config_h.SH, that
  is to say we do not copy `config.sh' we simply found the one that is
  the closest to the directory.


Revision 58385 - Directory Listing
Modified Fri Apr 21 05:42:33 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/C
Fixed issue where calling configure clean on a non-compiled run-time
  it would end up in the parent directory of C, rather than in C.
Removed special `cleand' option, we use `clean' even if in desc there
  is nothing to be done.


Revision 58321 - Directory Listing
Modified Thu Apr 20 04:59:59 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/C
Added build of libmtwewb.a.


Revision 58319 - Directory Listing
Modified Thu Apr 20 04:54:18 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/C
Copied from: trunk/Src/bench/C revision 58318
Moved trunk/Src/bench/C into trunk/Src/C.

Revision 58303 - Directory Listing
Modified Wed Apr 19 18:30:57 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Added building of `mtwewb.lib' which is needed now for the workbench version of
  EiffelStudio when you want to use it as a debugger.


Revision 58273 - Directory Listing
Modified Tue Apr 18 20:58:55 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Made sure that everything is compiled with -tWM to match what we do for Microsoft.


Revision 57962 - Directory Listing
Modified Fri Mar 31 17:17:13 2006 UTC (13 years, 8 months ago) by alexk
Original Path: trunk/Src/bench/C
Made cloning of objects being attached to expanded entity explicit to support creation instruction properly.

Revision 57908 - Directory Listing
Modified Thu Mar 30 12:31:41 2006 UTC (13 years, 8 months ago) by alexk
Original Path: trunk/Src/bench/C
Recorded feature {ANY}.twin in run-time to implement reattachment with
expanded semantics.
Implemented new byte code operation that conditionally clones an object if
its dynamic type is expanded.
Modified implementation of byte code assignment to the entity of expanded
type so that a clone of an object gets attached.
Added new macros that clone an object unconditionally or conditionally if
it is of expanded type.
Changed code generation to implement static or dynamic cloning of an object
involved in reattachment.


Revision 57907 - Directory Listing
Modified Thu Mar 30 12:14:54 2006 UTC (13 years, 8 months ago) by alexk
Original Path: trunk/Src/bench/C
Marked an object of expanded type allocated from heap as a boxed one.

Revision 57898 - Directory Listing
Modified Thu Mar 30 10:06:49 2006 UTC (13 years, 8 months ago) by alexk
Original Path: trunk/Src/bench/C
Added new macros to distinguish between nested expanded objects and boxed expanded objects.

Revision 57897 - Directory Listing
Modified Thu Mar 30 09:57:58 2006 UTC (13 years, 8 months ago) by alexk
Original Path: trunk/Src/bench/C
Added a new byte code to clone an expanded object attached to a reference entity.

Revision 57824 - Directory Listing
Modified Tue Mar 28 15:42:31 2006 UTC (13 years, 8 months ago) by jfiat
Original Path: trunk/Src/bench/C
added send_wchar_value(...)

Revision 57820 - Directory Listing
Modified Tue Mar 28 04:47:18 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Avoid using `eif_malloc' when we have less than `NB_THREADS_DATA' threads
  running in `eif_synchronize_gc'.


Revision 57790 - Directory Listing
Modified Mon Mar 27 19:50:30 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect flags for Solaris Sparc 64 bits when compiled for GCC.


Revision 57778 - Directory Listing
Modified Mon Mar 27 01:04:02 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Removed all occurrences of `binary_format' and `platform_arch'
  since now they are directly in `ccflags'.
Made sure all config files had `ccldflags' which are linker flags
  for the compiler, they are sometime different from the `ldflags'.


Revision 57649 - Directory Listing
Modified Thu Mar 23 07:38:30 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Made `eif_lpCmd_line' unicode based.


Revision 57648 - Directory Listing
Modified Thu Mar 23 07:38:14 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Made sure to use the ASCII version of `LoadLibrary' for `eif_load_dll' for 
  .NET mode since the compiler does not know how to generate C Unicode string yet.


Revision 57647 - Directory Listing
Modified Thu Mar 23 07:37:07 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Made `eif_lpCmdLine' LPWSTR.


Revision 57640 - Directory Listing
Modified Thu Mar 23 07:08:50 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Made all critical section using mutexes ASYNC SAFE. It slightly slows us down, but at
  least we avoid deadlock if a signal is sent to the application.


Revision 57628 - Directory Listing
Modified Thu Mar 23 02:47:36 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Added support for converting to EIF_WIDE_CHAR in byte code.
Renamed BC_CAST_CHAR into BC_CAST_CHAR8, and added BC_CAST_CHAR32.


Revision 57540 - Directory Listing
Modified Mon Mar 20 16:27:33 2006 UTC (13 years, 8 months ago) by patrickr
Original Path: trunk/Src/bench/C
Changed x2c tool to ignore comments.


Revision 57487 - Directory Listing
Modified Thu Mar 16 00:45:13 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Made sure to detect when an allocation fails and raise an out-of-memory
  exception.


Revision 57486 - Directory Listing
Modified Wed Mar 15 23:49:51 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Made sure to detect when an allocation fails and raise an out-of-memory
  exception.


Revision 57478 - Directory Listing
Modified Wed Mar 15 05:38:48 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Removed useless calls to RT_GET_CONTEXT.


Revision 57468 - Directory Listing
Modified Tue Mar 14 23:56:22 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Now ignoring signal is done on a per process basis. Warning the code
  updating the list of signals is not yet thread safe.


Revision 57465 - Directory Listing
Modified Tue Mar 14 22:53:12 2006 UTC (13 years, 8 months ago) by jasonw
Original Path: trunk/Src/bench/C
Modified to disable handle inheritance when launching process on Windows to ensure when used in EiffelStudio, that opened inheritable handles are not passed to the launched process (such as external editors), even those handles are not used by that process.

Revision 57452 - Directory Listing
Modified Tue Mar 14 16:17:37 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Made sure that when an exception is raised while in a signal handler
  it does not crash when querying the exception message from the EXCEPTIONS class.


Revision 57449 - Directory Listing
Modified Tue Mar 14 06:21:43 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Added `has_object' to `rt_object.h' so no need to declare it when it is used in garcol.c and malloc.c.
  Added some checks to `has_object' after creating an object to make sure that a newly
  created object cannot be in the object_id_stack. Otherwise this is a bug showing that
  the ID was not properly freed.
Changed `get_to_from_core' to not have an argument, it creates by default a chunk whose size
  is the standard size of chunks `eif_chunk_size'.


Revision 57448 - Directory Listing
Modified Tue Mar 14 06:12:21 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Made `has_object' available for normal preconditions, so that it can be used as
  precondition of `eif_object_id'. `has_object' still remains used in other places
  when EIF_EXPENSIVE_ASSERTIONS is enabled as it is quite costly to check it all
  the time.


Revision 57437 - Directory Listing
Modified Mon Mar 13 19:00:27 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed error for C++ compiler used when using Sunstudio.


Revision 57435 - Directory Listing
Modified Mon Mar 13 16:35:14 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Made `has_object' from `object_id.c' to be enabled only when EIF_EXPENSIVE_ASSERTIONS is
  enabled as it is quite expensive to check when the object stack ID gets big.


Revision 57430 - Directory Listing
Modified Mon Mar 13 00:17:24 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Reordered the fields in the structure so that the common fields appear
  at the top, and then the mode specific one at the bottom. This solves
  an issue with EiffelNet (which is only compiled for non-workbench mode)
  which corrupted the workbench once per manifest string entry in `eif_globals'
  when setting `socket_fides_cx' because it was editing the structure as if it
  was finalized, not workbench.


Revision 57417 - Directory Listing
Modified Fri Mar 10 02:02:42 2006 UTC (13 years, 9 months ago) by king
Original Path: trunk/Src/bench/C
Added empty stubs for EiffelThread library if EIF_THREADS is not defined so that we may compile EiffelThread against a non-multithreaded run-time, this means we can integrate thread functionality in to EiffelVision without having to have two versions

Revision 57414 - Directory Listing
Modified Thu Mar 9 20:25:03 2006 UTC (13 years, 9 months ago) by king
Original Path: trunk/Src/bench/C
Added EIF_THREADS_SUPPORTED macro used to determine if the runtime is thread capable

Revision 57253 - Directory Listing
Modified Mon Mar 6 15:03:52 2006 UTC (13 years, 9 months ago) by jfiat
Original Path: trunk/Src/bench/C
Classic debugger: added exception_trace message in the error text.
Classic debugger: it is now possible to disable (and then restore) assertion checking on the application being debugged.


Revision 57203 - Directory Listing
Modified Tue Feb 28 17:30:38 2006 UTC (13 years, 9 months ago) by jfiat
Original Path: trunk/Src/bench/C
use thr_getprio instead of thr_setprio for EIF_THR_GET_PRIORITY(tid,prio) 
(not used for now .. but let's fix this anyway)


Revision 57190 - Directory Listing
Modified Tue Feb 28 00:49:58 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed issue on VxWorks where priority was inversed because instead of
  going from 0 to 255 (i.e. from lowest to highest priority), it goes
  from 255 to 0.


Revision 57163 - Directory Listing
Modified Sun Feb 26 19:01:54 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
No need to do `eif_access' followed by `eif_wean' since `eif_wean' returned the proper
  unprotected address too.


Revision 57157 - Directory Listing
Modified Sat Feb 25 05:39:41 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed signature of EIF_THR_TYPE as it is not compatible with 64 bits computing.


Revision 57154 - Directory Listing
Modified Sat Feb 25 00:26:50 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Added new byte code for accessing and assigning tuple indexed by a label.


Revision 57148 - Directory Listing
Modified Fri Feb 24 14:47:08 2006 UTC (13 years, 9 months ago) by alexk
Original Path: trunk/Src/bench/C
Removed registration of a once routine for the debugger as now it uses other means to check whether the routine has been executed or not.

Revision 57146 - Directory Listing
Modified Fri Feb 24 04:49:20 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Added linker `--whole_archive' option as otherwise when linking big projects you get
  a lot of undefined symbols. The VxWorks documentation states that it will use all objects
  file in the archive rather than searching for the required ones; this is not clear but
  it does solve our problem.


Revision 57141 - Directory Listing
Modified Thu Feb 23 20:40:51 2006 UTC (13 years, 9 months ago) by jfiat
Original Path: trunk/Src/bench/C
Changed the IPC protocol and debug part of the runtime, 
 to support MT in classic system debugging
 to support correctly the recent changes about Once implementation (especially regarding threads, generic, and failure)


Revision 57129 - Directory Listing
Modified Wed Feb 22 19:46:25 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed definition for i_sysun since it is not available on VxWorks.


Revision 57100 - Directory Listing
Modified Tue Feb 21 02:58:51 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed two bugs in `sweep_from_space'. The first one was
- an incorrect traversal of objects which caused the routine to return -1
  when it should have return 0. This was mostly due to the use of the for loop
  which have a special semantic, use a while loop instead to make it clearer what we do.
- the test for finding out if an object was alive but not forwarded was wrong, because
  we also had to check that it was B_BUSY. Otherwise we might accidently hit the
  free list and stop the loop thinking we had a marked object (because the ov_fwd
  entry of the next zone had the EO_MARK flag set).

To make things simpler I've introduced a new macro `is_object_alive' in `sweep_from_space'.


Revision 57086 - Directory Listing
Modified Mon Feb 20 11:35:05 2006 UTC (13 years, 9 months ago) by alexk
Original Path: trunk/Src/bench/C
Provided index of a once routine.

Revision 57080 - Directory Listing
Modified Fri Feb 17 05:50:14 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed C warning.


Revision 57078 - Directory Listing
Modified Fri Feb 17 05:30:50 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Previous run-time fixes regarding the special objects not being properly
  updated because we get a bigger bloc than expected and we had to copy the
  count and element size to the right place was not the correct one.
  The root cause of all those problems was that we changed the size of `struct chunk'
  by adding a new field `ck_age'. On 32 bits platform, the structure size became 4 bytes
  larger but when allocating a new chunk of memory we did not take this into account
  and therefore the available memory for the process was not a multiple of ALIGNMAX
  (this is by reading the comment on ALIGNMAX that I understoo the root cause of the problem)
  thus all the randome crashes.
  I've made sure in `add_core' that we now always allocate a multiple of ALIGNMAX.
  So in `garcol.c' I've removed the code about the special update and replace it with
  CHECK statements.
  There was still a minor issue with `get_to_from_core' because the goal of the routine
  is not to allocate `nbytes' but to allocate a chunk which has the same size at least
  than the `from_space'. This was not really possible with the above changes in `add_core'
  and as a result the allocated memory was split. So now by using the right size and a
  new arguments to `allocate_from_core' that prevents the split we ensure that we have
  the whole memory from the chunk returned from `get_to_from_core'.


Revision 57077 - Directory Listing
Modified Fri Feb 17 04:14:14 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a potential problem in case our constants are not a multiple of ALIGNMAX
  because we were not fixing their value the way we do it when specified by the
  user through the environment variable.


Revision 56988 - Directory Listing
Modified Thu Feb 9 19:59:44 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
When fixing the previous bug (see svn#91905) I should have remembered that in the new compaction
  algorithm I was exposed to the same problem in `split_to_block' when making the last block larger
  and that the last block represented a SPECIAL object.
  This is now done.


Revision 56981 - Directory Listing
Modified Thu Feb 9 07:21:41 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed, what I think to be a very old bug, issue where while promoting an object from
  the scavenge zone to the free list, the size of the object was not the same and that
  it was a EO_SPEC object, we could be in trouble because the `count' and `element_size'
  are stored in the last two integers of the memory area, and since this one is bigger
  we get the incorrect information.
  For info, in precompiling the .NET base, we hit that situation 5 times. Not too many,
  but enough to make you crazy for one day trying to understand what is going on.


Revision 56980 - Directory Listing
Modified Thu Feb 9 04:37:53 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a bug due to the removal of the clearing of the B_LAST flag in the call
  to `scavenge' when we are in the `ps_from' zone. Although in the original code
  there was a comment in `scavenge' about B_LAST it was not clear why. Now it is
  and I added a comment to this effect when clearing the B_LAST flag.


Revision 56979 - Directory Listing
Modified Thu Feb 9 01:28:14 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a 7 years old bug introduced at version 22227 where we kept a pointer to
  the INFO part of the special (that is to say where the number of elements and
  the size of elements is stored) and we were using that pointer after reallocating
  the special.
  The issue is that:
   1 - The `area' might have moved before doing the reallocation process and
       therefore the pointer is not strictly valid, but most likely will be unless...
   2 - The `area' was in the `ps_from' zone and the `ps_from' zone was empty
       at the end of the full collection triggered by the reallocation and that
	   the `ps_from' zone was freed (i.e. returned to the system). If it was the
	   case dereferencing that pointer would cause a segmentation violation.

We only found that bug now because of the recent changes in the runtime which now
  compacts more efficiently but also returned to the system all empty chunks, not
  just the last one (this is why the bug is more likely to occur now than in the
  previous algorithm).


Revision 56964 - Directory Listing
Modified Wed Feb 8 02:21:16 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed memory corruption bug with new compaction algorithm. There were few problems which I'm listing here:
- `sweep_from_space' suffered from two bugs:
    1 - it was not checking that a block which had the EO_MARK flag could also have the B_FWD flag. If
	    it was the case, it actually did not mean it was marked, but that the forwarding pointer address
		had the EO_MARK flag.
	2 - there was an exit condition within the loop that was not checking the new condition which is not
	    just B_C, but also that the object is not forwarded and has the EO_MARK flag.
- Changed the management of the B_LAST flag which was sometime not set when there is not enough space to
  split the `ps_to' block in `split_to_block'. In which case, the next call to `coalesc' would go over
  the end of the block and crash.
  Now `split_to_block' manages this properly by setting it. The flag is removed at the beginning of a
  partial collection cycle.
- Fixed `split_to_block' to handle the case when a block cannot be split. We update the last block size
  to be the last one and increases its size with the remaining bytes. When it cannot split, a result of 0
  is returned and in `clean_zones' it is used to prevent the reuse of the `ps_to' block.
  For doing this work properly, we introduced a new field `sc_previous_top' which is updated at each
  scavenge.


Revision 56924 - Directory Listing
Modified Sat Feb 4 04:59:21 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed eol-style property to be native


Revision 56923 - Directory Listing
Modified Sat Feb 4 03:09:07 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Revision of compaction during partial scavenging and improved algorithm to release memory back to the system.
The list of changes includes:
- no more `spoilt_tbl' because our compaction algorithm handles well cases where the `from' zone
  is not empty at the end of a compaction.
- `ps_from' and `ps_to' are now private to `garcol.c', no need for `malloc.c' to know about them
  when trying to release some core since we made sure that their chunk are properly marked with the
  B_BUSY flag so that they cannot be seen as free chunks.
- Improved algorithm to look for `ps_from' zone, by having a cursor on the chunk_list which record
  the last position in the list. The cursor is properly updated when removing chunks.
- `full_coalesc' is not called after `plsc' in `acollect' anymore. Actually now it can only be called
  from user's code. We changed things slightly by forcing a full coalesc of all chunks in `rel_core'.
- We solely use `malloc' and `free' to allocate our memory from the system. This enables us to free any
  chunk of memory at anytime. The rational is that malloc implementation have improved the past 20 years
  and they are quite good at limiting memory fragmentation. The good news is that it enables to free
  empty chunks which were in the middle of our memory before and could not be freed because chunks were
  only freed if they were the last one in the list.
- Changed the structure of `sc_zone' used by `sc_from' and `sc_top' to remove useless fields, did the
  same with `ps_to' and `ps_from' which now gets a new structure type `partial_sc_zone'.
  Due to this change, we had to change the interface of `scavenge' to take a pointer to the `sc_top' field
  which exists in both structure when copying an object across.
- Renamed `find_std_chunk' into `find_from_space' to be consistent with `find_to_space'. Now the routines
  are less restrictive for finding a chunk. Any size will do.
- Fixed a small thing in `reclaim' where we forgot to set the root object to null before doing a full
  collection therefore `plsc' did not have much of an effect. Removed useless call to `full_sweep' since
  it is done in `plsc' already.
- Fixed a memory accounting bug in `find_to_space' in case we reuse an existing chunk of memory (one OVERHEAD
  was added to used memory when not needed becuase already accounted).
- Because now the `ps_from' zone might contains alived objects in hte case where `ps_to' is full, we add to
  update `sweep_from_space' to jump over mark objects and unmark them. We found a bug in the routine that is
  now fixed where if you had more than one non-moveable objects (and now a marked objects) it would do
  incorrect things because `flags' was not properly recomputed at each iteration of the big loop.
- Updated `split_to_block' to do the right thing when a non-empty `ps_to' zone is kept for next partial
  scavenging. This is why we have `sc_arena' and `sc_active_arena'. The first one is used for chunks
  operations, the last one is used by the partial scavenging mechanism.
- Increased default chunk size to 4MB
- Moved some structure definition from `eif_types.h' to `rt_types.h' since they are private to the runtime.


Revision 56922 - Directory Listing
Modified Sat Feb 4 02:40:28 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added `<file>' and `</file>' tag.


Revision 56921 - Directory Listing
Modified Sat Feb 4 02:40:08 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Moved `document.sh' into `doc' directory.
Improved script so that it goes into all directories as doing `-d $directory' was
  wrong because the script does not change the current working directory.
Use `GOBO' environment variable to locate the `gexslt' tool.


Revision 56906 - Directory Listing
Modified Sat Feb 4 00:08:06 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Implemented eif_thread_sleep on VXWORKS as best as we can by using yield. Thus the time
  is not correct, but it will certainly cause the thread to sleep.
Define `eif_thr_entry' with 10 arguments on VXWORKS as it is what VXWORKS can expect.


Revision 56905 - Directory Listing
Modified Sat Feb 4 00:06:20 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a bug in creation of VXWORKS tasks because we were setting the call stack
  size to 0 which I guess must have worked in the past but does not in the version
  of VXWORKS I was given to use.
Implemented EIF_THR_YIELD using TaskDelay which will pause the execution for 1 ticks.
  We cannot really use `sched_yield' because it requires additional packages to be
  added so that it is defined.


Revision 56904 - Directory Listing
Modified Sat Feb 4 00:03:57 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Made sure that eif_thread_fork is not defined on VXWORKS since it lacks the fork
  ability.


Revision 56903 - Directory Listing
Modified Sat Feb 4 00:03:16 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Made sure that `eiffel_fork' does nothing in VXWORKS.


Revision 56902 - Directory Listing
Modified Sat Feb 4 00:02:23 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Restored usleep as being defined as otherwise it prevents the workbench libraries
  to be compiled. This is certainly not a good thing to do, but it does not affect
  the finalized executable.


Revision 56900 - Directory Listing
Modified Fri Feb 3 17:11:21 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Undefine nanosleep and usleep as they don't actually exist by default.
Use VXWORKS tasks instead of EIF_POSIX_THREAD as it does not really work (issues with linking and size of binaries with relocation problems).


Revision 56897 - Directory Listing
Modified Fri Feb 3 07:28:39 2006 UTC (13 years, 10 months ago) by jfiat
Original Path: trunk/Src/bench/C
added files to generate the runtime's documentation
it requires gexslt from GoboEiffel

Revision 56896 - Directory Listing
Modified Fri Feb 3 02:45:39 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition for `init_date_cx' for other platforms (simply using `time_t').
Fixed missing definition of RT_TSD_TYPE for VXWORKS.


Revision 56895 - Directory Listing
Modified Fri Feb 3 02:44:27 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Made EIF_COND_CREATE to set `cond' to NULL when not available to avoid
  warnings during C compilation on platforms not supporting it.
Fixed incorrect definition of EIF_THR_KILL for platforms not supporting it.


Revision 56894 - Directory Listing
Modified Fri Feb 3 02:42:02 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Disable access to eif_thread_fork in VXWORKS since fork does not exist on this platform.


Revision 56891 - Directory Listing
Modified Fri Feb 3 02:02:00 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed C compiler warning for passing a char where a int is expected.


Revision 56845 - Directory Listing
Modified Thu Feb 2 23:02:25 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Removed conditional compilation for `scount' as it is needed even in VXWORKS now.


Revision 56813 - Directory Listing
Modified Wed Feb 1 09:35:43 2006 UTC (13 years, 10 months ago) by jfiat
Original Path: trunk/Src/bench/C
fixed runtime documentation issue

Revision 56698 - Directory Listing
Modified Wed Jan 25 00:02:43 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added ccldflags which is the set of flags we need to link a VxWorks executable.


Revision 56597 - Directory Listing
Modified Wed Jan 18 22:23:11 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect XML documentation tags.


Revision 56596 - Directory Listing
Modified Wed Jan 18 21:54:21 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `eif_tools.h' as its content is now merged with `rt_tools.h'.


Revision 56595 - Directory Listing
Modified Wed Jan 18 21:44:20 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added new copyright for runtime.


Revision 56594 - Directory Listing
Modified Wed Jan 18 20:08:08 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Not used since a long time ago since now we use the private header file `rt_err_msg.h'.


Revision 56593 - Directory Listing
Modified Wed Jan 18 19:55:04 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Removed since not used anymore as now STRING defines those routines in Eiffel.


Revision 56592 - Directory Listing
Modified Wed Jan 18 19:04:49 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `sizes.c' which was never used as far as I can tell in the past 10 years.


Revision 56586 - Directory Listing
Modified Wed Jan 18 18:29:40 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Removed files that have never been used for debugging, since debugging is
  always started from EiffelStudio.


Revision 56585 - Directory Listing
Modified Wed Jan 18 18:15:23 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Removed files that have never been used for debugging, since debugging is
  always started from EiffelStudio.


Revision 56582 - Directory Listing
Modified Wed Jan 18 17:34:23 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Removed because it was used in conjonction with `new_pstore.c' but since
  we removed it, we don't need it.


Revision 56533 - Directory Listing
Modified Mon Jan 16 23:12:29 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect signature for `boehm_dispose'.
Removed warnings in non-reached statement when compiling for BOEHM GC.


Revision 56532 - Directory Listing
Modified Mon Jan 16 23:11:54 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Made compilable under BOEHM GC.


Revision 56531 - Directory Listing
Modified Mon Jan 16 23:11:28 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Updated to version 6.6 of Boehm GC.


Revision 56530 - Directory Listing
Modified Mon Jan 16 23:10:38 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Switched to Posix threads.
Switched to Sun C compiler.


Revision 56490 - Directory Listing
Modified Tue Jan 10 17:51:22 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Made compilable with BOEHM_GC.


Revision 56439 - Directory Listing
Modified Sun Jan 1 15:28:06 2006 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Never used so removed. But also the new store mechanism is now written
  in Eiffel in the SED library.


Revision 56418 - Directory Listing
Modified Thu Dec 29 02:35:36 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added `eif_lock_marking' and `eif_unlock_marking' to ensure that people using
  the EO_STORE flags to mark objects do it in a thread safe manner.


Revision 56416 - Directory Listing
Modified Thu Dec 29 00:01:14 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect definition for sharedlink.


Revision 56415 - Directory Listing
Modified Wed Dec 28 23:53:51 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Reverted back to previous version as we did not want to integrate the `pedantic' flag.


Revision 56414 - Directory Listing
Modified Wed Dec 28 23:51:34 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Use $ld instead of ld to ensure we use the right one.


Revision 56413 - Directory Listing
Modified Wed Dec 28 23:49:48 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Removed C++ style comments.


Revision 56412 - Directory Listing
Modified Wed Dec 28 22:54:53 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed invalid empty #elif statement.


Revision 56407 - Directory Listing
Modified Wed Dec 28 18:14:03 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Remove inclusion of eif_eiffel.h since x2c.h already includes the minimum required stuff.


Revision 56404 - Directory Listing
Modified Wed Dec 28 16:45:09 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed missing header files inclusion to fix warnings found during VxWorks port on PowerPC.


Revision 56403 - Directory Listing
Modified Wed Dec 28 16:44:09 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Made the CUSTOM part optional when compiling for VxWorks.


Revision 56402 - Directory Listing
Modified Wed Dec 28 16:43:15 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition of intptr_t and uintptr_t which are not yet defined on VxWorks.


Revision 56401 - Directory Listing
Modified Wed Dec 28 16:42:01 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added support for VxWorks on PowerPC architecture.


Revision 56400 - Directory Listing
Modified Wed Dec 28 16:40:40 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Made compilable on a platform which does not provide good timing facilities (e.g. VxWorks)


Revision 56379 - Directory Listing
Modified Sat Dec 24 01:46:42 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Use `GC_malloc_uncollectable' in multithreaded mode because otherwise the
  global once values stored in static variables are not seen by the GC. You will
  tell me what the relationship with the malloc routine. The reason is that
  the address of those static variables is stored in global_once_set and if
  we allocate the memory for this stack using GC_malloc_uncollectable then
  the global onces will be traversed by the GC.


Revision 56377 - Directory Listing
Modified Fri Dec 23 20:03:45 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a memory corruption issues while retrieving very old storables that most likely
  have some dropped attributes/types. It would cause a memory corruption because a type
  was taken as a pointer to the next cell, thus causing `rt_clean' to fail when trying
  to free the memory.


Revision 56365 - Directory Listing
Modified Fri Dec 23 16:20:59 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
In non-ISE runtime mode, we cannot block all threads, instead
  we use the EO_STORE mutex since we are not going to access the
  global lists anyway.


Revision 56364 - Directory Listing
Modified Fri Dec 23 16:11:44 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
In multithreaded & non-ISE runtime mode, the global lists are not accessible, making
  our search for referrers useless.


Revision 56363 - Directory Listing
Modified Fri Dec 23 16:11:01 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Made it compile with non ISE runtime mode.


Revision 56308 - Directory Listing
Modified Thu Dec 22 00:38:16 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Optimized insertion/removal in free list by not sorting the blocks anymore. On Windows the
  benchmarks shows that we went from 238s to 230s, and on unix from 652s to 644s. It is not
  a major improvement, but if you have a lot of allocated space we found that it could improve
  the performance by a magnitude of minutes while doing a full collection.

  Read the new description section to read more about the change.


Revision 56227 - Directory Listing
Modified Sat Dec 17 01:33:08 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added more files to be ignored (mostly Makefile.bak and *.a *.o).


Revision 56225 - Directory Listing
Modified Sat Dec 17 01:20:39 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Made compilable for VxWorks. Mostly the synchronous and asynchronous system calls
  are not implemented.
Removed usage of `strdup' and use `malloc' followed by `strcpy' instead.


Revision 56224 - Directory Listing
Modified Sat Dec 17 01:18:36 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Removed trigraph as it was not necessary and caused some warnings on strict C compiler.
Removed C++ style comments as it might not compile on all C compilers.


Revision 56223 - Directory Listing
Modified Sat Dec 17 01:17:49 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Removed trigraph as it was not necessary and caused some warnings on strict C compiler.


Revision 56222 - Directory Listing
Modified Sat Dec 17 01:16:12 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Removed useless access to the per thread data when not used.


Revision 56221 - Directory Listing
Modified Sat Dec 17 01:15:28 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added missing header file to define some of the memXXX routines.


Revision 56220 - Directory Listing
Modified Sat Dec 17 01:14:32 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Removed C++ style comments as it might not compile on all C compilers.


Revision 56219 - Directory Listing
Modified Sat Dec 17 01:13:56 2005 UTC (13 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Removed trigraph as it was not necessary and caused some warnings on strict C compiler.


Revision 56119 - Directory Listing
Modified Wed Dec 14 16:44:04 2005 UTC (13 years, 11 months ago) by isewww
Original Path: trunk/Src/bench/C
Removed trailing blanks.


Revision 56060 - Directory Listing
Modified Thu Dec 8 02:34:59 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect usage of C++ style comments.


Revision 56059 - Directory Listing
Modified Thu Dec 8 02:26:58 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect usage of C++ style comments.


Revision 56058 - Directory Listing
Modified Thu Dec 8 02:26:25 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect usage of C++ comments in C file.


Revision 56038 - Directory Listing
Modified Wed Dec 7 16:18:57 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/C
Renamed m_data, c_data and e_data into rt_m_data, rt_c_data and rt_e_data
  because `m_data' is a macro under VxWorks thus preventing compilation of
  the run-time.


Revision 56016 - Directory Listing
Modified Mon Dec 5 18:36:22 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/C
Committed newly generated Makefile.SH, built from Jmakefile:
  Added building of MTbmain.o and MTbexcept.o as otherwise no libmtebench.a 
  can be built.


Revision 56015 - Directory Listing
Modified Mon Dec 5 18:35:43 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/C
Added building of MTbmain.o and MTbexcept.o as otherwise no libmtebench.a
  can be built.


Revision 56003 - Directory Listing
Modified Sun Dec 4 22:40:12 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/C
Fixed memory leaks when retrieval using mismatch correction fails in one
  of the call to `correct_mismatch'.
Fixed potential bugs in multiple deallocation because after freeing memory
  we forgot to set the pointer to NULL, or to reset `nb_recorded'.


Revision 55976 - Directory Listing
Modified Fri Dec 2 18:28:39 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/C
Fixed eweasel store008 regarding a crash when retrieving a type that
  does not exist in retrieval system.
Fixed potential disabling of GC when an exception occurs while reading
  a storable header.


Revision 55953 - Directory Listing
Modified Thu Dec 1 02:48:37 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/C
Protected inclusion of <sys/timeb.h> with our I_SYS_TIMEB flag
  that tells us if timeb.h is available or not.


Revision 55941 - Directory Listing
Modified Wed Nov 30 00:45:54 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/C
Moved the -GS- option to the `optimize' part since it is really an optimization.
And left the -GS option for the debug part as it might be useful to detect buffer overflow
  when running in debug mode.


Revision 55938 - Directory Listing
Modified Tue Nov 29 19:43:05 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/C
Removed generation of runtime checks for buffer overflow checks that could slow
  down the runtime execution and that also make the compiled run-time unlinkable
  on machine which only have the platform SDK.


Revision 55933 - Directory Listing
Modified Tue Nov 29 09:39:28 2005 UTC (14 years ago) by alexk
Original Path: trunk/Src/bench/C
Removed a file that is no longer used.

Revision 55932 - Directory Listing
Modified Tue Nov 29 07:02:30 2005 UTC (14 years ago) by alexk
Original Path: trunk/Src/bench/C
Extended a list of generated files to be ignored.

Revision 55931 - Directory Listing
Modified Tue Nov 29 06:29:23 2005 UTC (14 years ago) by alexk
Original Path: trunk/Src/bench/C
Changed letter case of Makefile file name to match the one used on case-sensitive OSes.

Revision 55917 - Directory Listing
Modified Mon Nov 28 21:54:55 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/C
Removed now empty directories.


Revision 55916 - Directory Listing
Modified Mon Nov 28 21:54:28 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/C
Removed now empty directory.


Revision 55894 - Directory Listing
Modified Sat Nov 26 15:11:53 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/C
Added ignoring of generated files.


Revision 55893 - Directory Listing
Modified Sat Nov 26 15:10:36 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/C
Added ignoring of generated files.


Revision 55892 - Directory Listing
Modified Sat Nov 26 15:10:06 2005 UTC (14 years ago) by manus
Original Path: trunk/Src/bench/C
Added ignoring of generated files.


Revision 55668 - Directory Listing
Modified Tue Nov 8 16:52:02 2005 UTC (14 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Updated Jmakefile and automatically generated Makefile.SH to generate `libmtebench.a'.


Revision 55667 - Directory Listing
Modified Tue Nov 8 16:34:00 2005 UTC (14 years, 1 month ago) by jfiat
Original Path: trunk/Src/bench/C
added generation of MT version for ebench library


Revision 55664 - Directory Listing
Modified Tue Nov 8 13:52:25 2005 UTC (14 years, 1 month ago) by alexk
Original Path: trunk/Src/bench/C
Ensured that stack item reserved for address (BC_RESERVE) is marked with
the corresponding type (SK_POINTER). This migth be required when the
instruction is followed by BC_METAMORPHOSE.


Revision 55463 - Directory Listing
Modified Mon Oct 31 20:04:37 2005 UTC (14 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added precondition to `eequal' and optimized `eequal' in case both objects have
  the same reference, there is no need to go further.


Revision 55365 - Directory Listing
Modified Tue Oct 25 00:51:33 2005 UTC (14 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Relaxed `eif_id_for_typarr' so that NONE_TYPE becomes a valid value for which
  the result is NONE_TYPE.
Fixed `eif_gen_conf' so that A [NONE] conforms to A [B] when B is not expanded
  (fixing new entries in dotnet015 eweasel test).


Revision 55364 - Directory Listing
Modified Tue Oct 25 00:33:55 2005 UTC (14 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Made `eifcid' return NONE_TYPE when handling `NONE'. This fixes added testing
  in `dotnet015' where NONE was not recognized as a valid type.


Revision 55115 - Directory Listing
Modified Thu Oct 13 23:12:06 2005 UTC (14 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
No need for binary_format and platform_arch. Now we distinguish between the
  C compiler flags to compile a C mode (ccflags), the C compiler flags
  to link (ccldflags) and the linker flags (ldflags).
  Not that we still have `ldflags' and `mtldflags' but as far as we can tell
  the second one is not needed. We will most likely remove it in the future.
Removed -g option from `optimize' as this was a leftover.


Revision 55107 - Directory Listing
Modified Thu Oct 13 23:00:59 2005 UTC (14 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Updated Makefile.SH with recent modification of the metaconfig makefile
  templates and rules. We now use JLKFLAGS with $(LD), and we modified
  JLDFLAGS so that it uses the C compiler flags for linking (i.e. ccldflags
  and not the $ldflags which are for $(LD)).


Revision 55106 - Directory Listing
Modified Thu Oct 13 22:59:20 2005 UTC (14 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
No need for binary_format and platform_arch. Now we distinguish between the
  C compiler flags to compile a C mode (ccflags), the C compiler flags
  to link (ccldflags) and the linker flags (ldflags).
  Not that we still have `ldflags' and `mtldflags' but as far as we can tell
  the second one is not needed. We will most likely remove it in the future.


Revision 55095 - Directory Listing
Modified Thu Oct 13 17:36:42 2005 UTC (14 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed the -xO0 for workbench compilation, as -xO0 is only for internal use
  by Sun and it does not mean turn off optimizations. Not putting any optimization
  flag is equivalent to not put any optimizations.


Revision 55081 - Directory Listing
Modified Wed Oct 12 23:04:21 2005 UTC (14 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed missing '}' making code not to compile on Unix.
Cosmetics: went back to use tabs instead of spaces


Revision 55080 - Directory Listing
Modified Wed Oct 12 21:22:32 2005 UTC (14 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Solaris version has a smartbrk when compiled with the unistd.h header file.
Changed the optimzation from -xO3 to -xO2, as the -xO3 seems to optimize
  too much in the generated code as some access which should be done volatile
  are optimized away making the GC forgets some objects.


Revision 54914 - Directory Listing
Modified Wed Oct 5 23:38:41 2005 UTC (14 years, 2 months ago) by jasonw
Original Path: trunk/Src/bench/C
Changed prototype of update function and added a parameter `argv0' to allow
application to search in directory where it is launched.


Revision 54913 - Directory Listing
Modified Wed Oct 5 23:37:02 2005 UTC (14 years, 2 months ago) by jasonw
Original Path: trunk/Src/bench/C
Changed the way we search melted file.
The places that are searched in order:
1. directory specified by environment parameter MELT_PATH
2. current working directory
3. directory where application is launched
4. the original directory where .melted file was generated the first time.


Revision 54912 - Directory Listing
Modified Wed Oct 5 23:33:33 2005 UTC (14 years, 2 months ago) by jasonw
Original Path: trunk/Src/bench/C
In order to find melted file from directory where application is launched,
pass argv[0] to update function.


Revision 54882 - Directory Listing
Modified Wed Oct 5 17:27:05 2005 UTC (14 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed `matching' so that it also analyzes the stacks that are in a per
  thread data. Not doing so was making the `matching' routine to scan
  only for the current thread. Moreover there was a bug in traversing
  `once_set' because in multi-threaded mode it follows the same content
  as if it was workbench.
Changed the synchronization routine around `matching' and routines using or
  used by `matching' so that it gets the GC lock. This is required because
  we need to traverse all the per thread data of all running threads.


Revision 54881 - Directory Listing
Modified Wed Oct 5 16:48:52 2005 UTC (14 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Added `global_once_set' so that it can be used in `traverse' for example
  to search for objects.


Revision 54868 - Directory Listing
Modified Tue Oct 4 20:45:09 2005 UTC (14 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Initial version of configuration file for Solaris-x86-64. Based on the Sun
  C compiler.


Revision 54853 - Directory Listing
Modified Tue Oct 4 06:54:52 2005 UTC (14 years, 2 months ago) by alexk
Original Path: trunk/Src/bench/C
Added a check that memory allocation for indexes of once routines is not
performed when there are no such once routines as otherwise Borland
run-time returns zero pointer and "no memory" exception is raised.


Revision 54812 - Directory Listing
Modified Thu Sep 29 19:41:51 2005 UTC (14 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Updated from the Jmakefile changes.


Revision 54811 - Directory Listing
Modified Thu Sep 29 19:41:11 2005 UTC (14 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Added ability to build multithreaded version of libewb.a needed as
  EiffelStudio is now compiled in multithreaded mode.


Revision 54732 - Directory Listing
Modified Mon Sep 26 14:57:51 2005 UTC (14 years, 2 months ago) by jfiat
Original Path: trunk/Src/bench/C
fixed issue with NATURAL_64
  nat64 := 1
  nat64 := nat64 |<< 32
before the debugger were displaying 0 instead of 4294967296
the error were in the deserialization of the data sent by estudio to ec


Revision 54598 - Directory Listing
Modified Thu Sep 1 19:56:18 2005 UTC (14 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Added building of multithreaded version of the compiler library needed if
  one wants to build the compiler ini multithreaded mode.


Revision 54587 - Directory Listing
Modified Thu Sep 1 01:52:43 2005 UTC (14 years, 3 months ago) by jasonw
Original Path: trunk/Src/bench/C
Fixed makefile for multithreaded workbench version of libcompiler.a as unlike
  the non-multithreaded mode, the `pretrieve.c' module needs to be compiled
  with the WORKBENCH flag as the per thread data structure is different between
  finalized and workbench mode.


Revision 54581 - Directory Listing
Modified Wed Aug 31 17:59:32 2005 UTC (14 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Cosmetics.
Added definition for EIFMTX_LOCK and EIFMTX_UNLOCK in non-multithreaded mode
  so that the code does not need to use EIF_THREADS to know whether or not
  we are in multithreaded mode.
Fixed a bug where doing `(create {ANY}).generating_type' would print NONE instead
  of ANY.


Revision 54452 - Directory Listing
Modified Wed Aug 24 23:59:23 2005 UTC (14 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
No need for libcompat on MacOS X 10.4 (Tiger) as it is now included in their
  standard C library.


Revision 54347 - Directory Listing
Modified Tue Aug 16 22:11:59 2005 UTC (14 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Previous commit about -64 is incorrect because we need the flag to be valid
  with the C compiler command line too. Reverted back to use `binary_format'
  even though if it triggers the linked `ld' to generate the `map' file.


Revision 54345 - Directory Listing
Modified Tue Aug 16 21:52:36 2005 UTC (14 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Made sure that ccflags was identical to the 32 bits version.
Added missing `-lrt' for multithreaded libraries.
Use `-64' for `ldflags' as we cannot reuse `binary_format' since -m64 is
  not a valid ldflags.


Revision 54343 - Directory Listing
Modified Tue Aug 16 21:50:45 2005 UTC (14 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Cosmetics.
Added `-pipe' option for gcc.


Revision 54338 - Directory Listing
Modified Tue Aug 16 19:22:50 2005 UTC (14 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect specification for PowerPC (both linux and mac)


Revision 54307 - Directory Listing
Modified Tue Aug 16 00:09:26 2005 UTC (14 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed C compiler warning as structures used in `once_list_reset' and `dbstack_reset'
  were not defined in certain C compilation mode of the run-time.


Revision 54297 - Directory Listing
Modified Mon Aug 15 23:51:02 2005 UTC (14 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed C warning about signed/non-signed comparisons.


Revision 54295 - Directory Listing
Modified Mon Aug 15 23:44:15 2005 UTC (14 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed `st_write' for 64 bits big endian version. Because now `ovs_size'
  is not 32 bits anymore, we cannot use the field directly, we need to store
  the size on a 32 bits local and then use its address to store the size.


Revision 54190 - Directory Listing
Modified Wed Aug 10 01:03:51 2005 UTC (14 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Protected call to `eif_thr_is_root' in `eif_thr_exit' by performing it before
  we remove the per thread data from the list `rt_global_list' which could
  cause the routine `eif_terminate_all_other_threads' to exit and thus being
  able to free the key used to access the per thread data making `eif_thr_is_root'
  to fail when done after the removal from `rt_global_list'. Evaluating it
  before solves the problem.


Revision 54143 - Directory Listing
Modified Mon Aug 8 16:41:00 2005 UTC (14 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a small bug in `eif_thr_exit' when LMALLOC_CHECK is defined, we were
  calling it after `rt_globals' was freed and thus it would crash in `eif_thr_is_root'.


Revision 53971 - Directory Listing
Modified Tue Aug 2 05:45:10 2005 UTC (14 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Use Eiffel57 instead of Eiffel56.


Revision 53819 - Directory Listing
Modified Wed Jul 27 05:59:33 2005 UTC (14 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed `eequal' and `eiso' so that two objects of respective type A[B] and A[C] will not
  yield True if B and C are references and that the memory representation is
  the same. It used to be true because we were only comparing the dynamic type
  and not the full dynamic type.
Fixed `e_field_equal' and `e_field_iso' to take a full dynamic type as argument
  rather than a dynamic type as `eequal' and `eiso' uses full dynamic type (see above fix).


Revision 53817 - Directory Listing
Modified Wed Jul 27 05:55:38 2005 UTC (14 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added `Dftype_flags' which given runtime object flags, extract the full dynamic type.
Rewrote Dftype, Dtype, Deif_bid and Mapped_flags to use new `Dftype_flags' and
  to reduce code duplication to better understand the relationship between the
  macros and how to use them.


Revision 53752 - Directory Listing
Modified Mon Jul 25 08:05:49 2005 UTC (14 years, 4 months ago) by alexk
Original Path: trunk/Src/bench/C
Added missing opening brace.


Revision 53682 - Directory Listing
Modified Fri Jul 22 12:48:55 2005 UTC (14 years, 4 months ago) by alexk
Original Path: trunk/Src/bench/C
Added checks to avoid allocating memory for once routines when there are
no once routines at all because some C implementations (e.g., Borland) return
null pointer for such allocations and run-time reports "Not enough memory".


Revision 53386 - Directory Listing
Modified Wed Jul 13 02:06:26 2005 UTC (14 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed conversion bug from INT64 to UINT64 (value got truncated to 32 bit). It
  fixes eweasel test melt074.


Revision 53363 - Directory Listing
Modified Tue Jul 12 17:42:22 2005 UTC (14 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added `-lcompat' since it is needed to find `ftime'.


Revision 53357 - Directory Listing
Modified Tue Jul 12 15:36:54 2005 UTC (14 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
New config file generated by `Configure' script for FreeBSD 5.3


Revision 53356 - Directory Listing
Modified Tue Jul 12 15:36:30 2005 UTC (14 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added missing entries of the configure script.


Revision 53350 - Directory Listing
Modified Tue Jul 12 02:04:12 2005 UTC (14 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added `EIF_IS_64_BITS' platform. For now only used by `finish_freezing' on
  Windows. We did not add it in PLATFORM, because we did not know how to
  do it for .NET and we were too close to the 5.6 release to figure this
  out.


Revision 53315 - Directory Listing
Modified Mon Jul 11 21:56:13 2005 UTC (14 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Made `stderr' and `stdout' unbuffered by default, so that behavior is
  consistent between unix and windows (windows does not have line buffered mode).


Revision 53314 - Directory Listing
Modified Mon Jul 11 21:44:23 2005 UTC (14 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Removed non-used platform.


Revision 53313 - Directory Listing
Modified Mon Jul 11 21:43:50 2005 UTC (14 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Renamed `macosx' into `macosx-ppc' to follow new convention `os-cpu'


Revision 53312 - Directory Listing
Modified Mon Jul 11 21:42:25 2005 UTC (14 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Renamed `freebsd' into `freebsd-x86' to follow new convention `os-cpu'


Revision 53252 - Directory Listing
Modified Sun Jul 10 00:42:23 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added missing RT_LNK declaration so that we can use dynamic runtime with
  EiffelBase precompiled.


Revision 53209 - Directory Listing
Modified Fri Jul 8 18:04:23 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed warning in C generated code which could actually cause a compile time
  error when compiled in C++ mode.


Revision 52998 - Directory Listing
Modified Tue Jul 5 18:24:10 2005 UTC (14 years, 5 months ago) by paulb
Original Path: trunk/Src/bench/C
Made copyright message look better


Revision 52917 - Directory Listing
Modified Sat Jul 2 02:27:26 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed memory corruption bug because STACK_SIZE was incorrectly defined after
  our changes last time for ensuring that when requesting `n' elements we indeed
  get `n' elements for stacks. Before we were actually getting `n - 4' elements.
  Because of that we were getting 8 objects that were sharing the last 4 IDs of
  a chunk, thus it would mess up when trying to recover an object of a given
  ID (introducing some catcalls that could corrupt the memory).


Revision 52603 - Directory Listing
Modified Fri Jun 24 18:56:00 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Now runtime is compiled using the Microsoft multithreaded C library, as otherwise
  it does not compile with VisualStudio 2005.


Revision 52492 - Directory Listing
Modified Wed Jun 22 02:24:27 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a bug due the inability of the Boehm GC to use thread storage as roots
  of the mark and sweep algorithm. So we use `GC_malloc_uncollectable' to ensure
  that this will be marked as `rt_globals' contains all the stacks used by
  the run-time to keep track of certain objects (e.g. onces, ...)


Revision 52491 - Directory Listing
Modified Wed Jun 22 02:22:08 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
When runtime is built for Boehm GC we use the Boehm `malloc' family to implement
  the `eif_xx' functions. This is required because Boehm will not track memory
  allocated by standard `malloc' and we use the `eif_xx' functions time to time
  to allocate the runtime stacks.


Revision 52490 - Directory Listing
Modified Wed Jun 22 02:20:43 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Use the `eif_xx' variant of the malloc functions family when we have not GC. This
  is necessary as those variants are implemented using the Boehm GC variants
  when runtime is built for Boehm as Boehm does not support tracking memory
  allocated through the standard `malloc'.


Revision 52445 - Directory Listing
Modified Tue Jun 21 22:09:37 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Temporary fix until signal management becomes global rather than on a per thread basis:
 - we allocate only once `c_sig_stk' in the root thread, other threads will reuse the one
   allocated in root thread in the event of a stack overflow. It fixes eweasel
   test exec169 which was still failing on Solaris.


Revision 52438 - Directory Listing
Modified Tue Jun 21 21:05:15 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
No need for protecting the RTAR macros, it is already done in `eif_macros.h'.


Revision 52391 - Directory Listing
Modified Tue Jun 21 00:43:45 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Made it easy to compile the run-time for a particular kind of GC:
- none
- Boehm
- ISE


Revision 52378 - Directory Listing
Modified Mon Jun 20 22:50:40 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Bad fix so that it links with the Boehm GC in multithreaded mode.


Revision 52346 - Directory Listing
Modified Mon Jun 20 12:26:30 2005 UTC (14 years, 5 months ago) by alexk
Original Path: trunk/Src/bench/C
Fixed an issue with calling non-initialized profiler from the code that initializes
once manifest strings in single-threaded finalized mode by temporary disabling
the profiler.


Revision 52337 - Directory Listing
Modified Sat Jun 18 01:48:24 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added call to `free' when no GC is called, so that memory management can be
  done at the eiffel level.


Revision 52326 - Directory Listing
Modified Fri Jun 17 19:07:45 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition for `boehmgclib'.


Revision 52322 - Directory Listing
Modified Fri Jun 17 18:31:50 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Made it compile for code generation not using the ISE gc.


Revision 52317 - Directory Listing
Modified Fri Jun 17 17:33:05 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Required include file for Boehm GC 6.4.


Revision 52316 - Directory Listing
Modified Fri Jun 17 17:32:27 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Updated run-time so that it compiles with Boehm GC version 6.4.


Revision 52292 - Directory Listing
Modified Fri Jun 17 04:48:18 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added a `*_reset' routines for all our stack types, so that on a multithreaded
  application we can free the per thread stack to avoid a memory leak.
  Sometime I've renamed the stack routines to be prefixes with part of the
  stack type. It fixes eweasel test exec169.


Revision 51975 - Directory Listing
Modified Thu Jun 9 23:29:37 2005 UTC (14 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed eweasel test exec203 when copying an expanded with expanded attributes
  to another one. Instead of copying the attributes from the source to the target,
  we would do from the target to the source.


Revision 51958 - Directory Listing
Modified Thu Jun 9 17:40:03 2005 UTC (14 years, 6 months ago) by jfiat
Original Path: trunk/Src/bench/C
fixed issue dealing with breakpoint removal

if you have two bp in a feature (for instance line 2 and 4)
if you first step in this feature, then disable bp line 2
when you continue, the execution was also stopping line 2


Revision 51778 - Directory Listing
Modified Mon Jun 6 18:35:23 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `pattern.c' and `string.c' as now the code is entirely written in
  Eiffel in the STRING and STRING_SEARCHER classes.


Revision 51748 - Directory Listing
Modified Mon Jun 6 16:37:16 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Because the code in `pattern.c' and `string.c' is not written in Eiffel, no
  need for the C code.


Revision 51747 - Directory Listing
Modified Mon Jun 6 16:36:46 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed some memory leaks when calling `malloc/free'.
Renamed `eif_destroy_gc_stacks' into `eif_remove_gc_stacks', and added
  `eif_free_gc_stacks' which frees the allocated memory for the stacks.
There is still one major leak: the stack stored on a per thread data are never
  freed thus causing the memory to grow each time a new thread is created
  (See FIXME in eif_free_context).


Revision 51746 - Directory Listing
Modified Mon Jun 6 16:32:15 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
To free the mutex allocated for the debugger, we call `dbreak_free_table' in `reclaim'.


Revision 51745 - Directory Listing
Modified Mon Jun 6 16:31:32 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a bug where `exget (&eif_trace)' could return a NULL pointer when
  there is no more memory in `eraise'.
Slightly improved `extop'.


Revision 51744 - Directory Listing
Modified Mon Jun 6 16:25:53 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Use `rt_debug.h' to get signature of `dbreak_create_table'.


Revision 51743 - Directory Listing
Modified Mon Jun 6 16:24:59 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition of `dbreak_free_table' so that the debugger mutex gets freed
  at the very end of an execution, otherwise it would cause a memory leak.


Revision 51742 - Directory Listing
Modified Mon Jun 6 16:23:40 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `spsubcopy' and replaced it by `sp_copy_data' which has the same
  signature as `SPECIAL.copy_data'. When optimized `SPECIAL.copy_data'
  calls `sp_copy_data', but only when it is a SPECIAL of expanded with
  references, as otherwise the compiler can call `memmove' directly
  making it even faster.


Revision 51681 - Directory Listing
Modified Fri Jun 3 06:00:43 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added `eif_is_tuple_type' to find if a type id is a TUPLE or not.


Revision 51570 - Directory Listing
Modified Wed Jun 1 04:58:35 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed warnings raised on Windows 64 bits.


Revision 51566 - Directory Listing
Modified Wed Jun 1 01:52:34 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added `EIF_IS_WORKBENCH' macro to know if we are running the workbench version
  of a program.


Revision 51482 - Directory Listing
Modified Fri May 27 17:24:26 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Forgot to take into account SPECIAL [NATURAL_XX] for `eif_is_special_type'
  and `out'.


Revision 51437 - Directory Listing
Modified Thu May 26 21:01:50 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed error reported by the SGI compiler.


Revision 51436 - Directory Listing
Modified Thu May 26 20:57:27 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed warnings on Linux.


Revision 51435 - Directory Listing
Modified Thu May 26 20:55:10 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
New implementation of `eif_type_id' which now handles computation of the
  dynamic types for TUPLEs. Decomposition of the `type_string' and the
  building of the `typearr' for computing of the dynamic type have been
  completely rewritten.
Moreover errors are now better handled.
No exception is raised even if we are lacking some memory. Simply we
  return EIF_NO_TYPE as result.


Revision 51302 - Directory Listing
Modified Mon May 23 17:48:08 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed cases where EIF_NATURAL_XX_CODE values were not handled at all.


Revision 51230 - Directory Listing
Modified Thu May 19 21:43:33 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Understood now why we had `debug_ex_vect', it was because we wanted `libewb.a'
  to have the three members removed from ex_vect in finalized mode. Instead
  we now define EIF_IPC and if it is defined those members are preserved
  in `ex_vect'.


Revision 51221 - Directory Listing
Modified Thu May 19 19:27:50 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Understood now why we had `debug_ex_vect', it was because we wanted `ewb.lib'
  to have the three members removed from ex_vect in finalized mode. Instead
  we now define EIF_IPC and if it is defined those members are preserved
  in `ex_vect'.


Revision 51219 - Directory Listing
Modified Thu May 19 18:31:42 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `debug_ex_vect' and simply replaced it with `ex_vect' as we do not
  debug finalized applications thus the extra structure is useless and if
  we changed `ex_vect' without changing `debug_ex_vect' we would break
  something.


Revision 51205 - Directory Listing
Modified Thu May 19 05:32:00 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added support for new opcodes BC_INT_SET_BIT and BC_INT_SET_BIT_WITH_MASK.


Revision 51204 - Directory Listing
Modified Thu May 19 05:27:32 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added handling of `set_bit' and `set_bit_with_mask' for NATURAL_XX and
  INTEGER_XX classes.


Revision 51203 - Directory Listing
Modified Thu May 19 05:26:52 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added new opcodes for optimizing `set_bit' and `set_bit_with_mask' from the
  INTEGER_XX and NATURAL_XX classes.


Revision 51202 - Directory Listing
Modified Thu May 19 05:26:14 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added `eif_set_bit' and `eif_set_bit_with_mask' macros.


Revision 51199 - Directory Listing
Modified Thu May 19 00:59:18 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Removed special redefinition of STACK_CHUNK.
Removed special redefinition of STACK_CHUNK and MIN_FREE.
Use `eif_stack_chunk' instead of STACK_CHUNK for default size when allocating
  new chunks for stacks.
Changed signature of `new_exset' so that `arg_nb' and `loc_nb' are now of
  type `uint32' as otherwise we could only have 255 args or locals which
  is clearly not enough.
Fixed eweasel bug `exec079' and `exec070' due to the fact that in `exorig'
  we could remove a chunk, but since we were restoring the previous state
  of the `eif_trace' stack, then it would not be correct because a chunk
  was freed and thus causing an infinite loop in `exec079'. Now we have
  split `expop' into `expop' (which changes the stack structure) and
  `expop_helper' (which changes the stack structure only if requested).
  `expop_helper' is used in `exorig' to traverse `eif_trace'.


Revision 51195 - Directory Listing
Modified Thu May 19 00:53:34 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Use `eif_stack_chunk' instead of STACK_CHUNK for default size when allocating
  new chunks for stacks.
Changed `extend' to take as argument the number of items we want to add, which
  also add a feature that if we want more items that `eif_stack_chunk' we can
  allocate them (no more `out of locals' exception, fixing eweasel tests
  exec022). Note that we guarantee that we will have the requested number of items.
Changet `eget' and `eback' so that if you have a chunk which cannot allocate
  `n' locals, we will skip that chunk until we find one or that we have to
  allocate a new chunk. `eback' now removes all the chunk until we get back
  to the chunk containing `top'.


Revision 51192 - Directory Listing
Modified Thu May 19 00:42:01 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Use `eif_stack_chunk' instead of STACK_CHUNK for default size when allocating
  new chunks for stacks.


Revision 51191 - Directory Listing
Modified Thu May 19 00:41:30 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Increased value for `STACK_CHUNK' to be more realistic of big applications today,
  thus it should reduce number of chunks being created and possibly improves
  performance (which it hasn't benchmarked yet).


Revision 51190 - Directory Listing
Modified Thu May 19 00:39:10 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Changed signature of `ivalue' which now takes a `uint32' to match changes of
  of `new_exset' which also take `uint32' for `loc_nb' and `arg_nb'.


Revision 51189 - Directory Listing
Modified Thu May 19 00:38:25 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Changed type of `locnum_cx' and `argnum_cx' to be `uint32' to match changes
  of `new_exset' which also take `uint32' for `loc_nb' and `arg_nb'.


Revision 51188 - Directory Listing
Modified Thu May 19 00:36:47 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Use `eif_stack_chunk' instead of STACK_CHUNK for default size when allocating
  new chunks for stacks.
Removed special redefinition of STACK_CHUNK and MIN_FREE.
Updated code so that all references to number of arguments/locals is now using
  a `uint32' data type which cause a signature change for `ivalue'.
Fixed eweasel test `melt073' which was not properly handling `+' and `-' where
  target is a character.


Revision 51187 - Directory Listing
Modified Thu May 19 00:33:45 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Use `eif_stack_chunk' instead of STACK_CHUNK for default size when allocating
  new chunks for stacks.
Routines allocating new chunks that takes a number of items are now guaranteed
  to have space for the requested number of items.


Revision 51186 - Directory Listing
Modified Thu May 19 00:27:38 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Changed type of `ex_locnum' and `ex_argnum' to be `uint32' to match changes
  of `new_exset' which also take `uint32' for `loc_nb' and `arg_nb'.


Revision 51185 - Directory Listing
Modified Thu May 19 00:23:19 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Changed signature of `new_exset' so that `arg_nb' and `loc_nb' are now of
  type `uint32' as otherwise we could only have 255 args or locals which
  is clearly not enough.


Revision 51184 - Directory Listing
Modified Thu May 19 00:22:02 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Removed special redefinition of STACK_CHUNK and used `eif_stack_chunk' for
  default size when allocating new chunks for stacks.
Made LIST_CHUNK synonym of `eif_stack_chunk'.


Revision 51183 - Directory Listing
Modified Thu May 19 00:19:57 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Since now `ivalue' takes a `uint32', we made number of locals/arguments a `uint32'
  as well to be consistent.


Revision 51182 - Directory Listing
Modified Thu May 19 00:15:09 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Use `eif_stack_chunk' instead of STACK_CHUNK.


Revision 51119 - Directory Listing
Modified Tue May 17 21:39:31 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed eweasel test exec021 because `nb_items' is now an unsigned integer. In
  the process improved speed in multithreaded mode by only doing `RT_GET_CONTEXT'
  when really needed (i.e. when `top' is not in the same chunk.).


Revision 51037 - Directory Listing
Modified Fri May 13 15:27:40 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed EIF_THR_KILL macro on Solaris.


Revision 51036 - Directory Listing
Modified Fri May 13 15:27:24 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Removed non-used locals.


Revision 51021 - Directory Listing
Modified Thu May 12 22:24:42 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Merged changes made for EMC in the Eiffel_54 branch which were not integrated to the HEAD:
	Reviewed `eif_thr_exit' to ensure that it is called only once as sometime
	  while in `eif_thr_exit' we might call `eif_thr_exit' again recursively
	  and we want this to be a no-op.
	Redesigned `eif_thread_fork' to be much simpler (was tested at EMC on their
	  real life system)
	Added EIF_THR_KILL and EIF_THR_CANCEL for platform that supports it.
	Added `eif_terminate_all_other_threads' which is called in reclaim to
	  ensure that once a thread called `reclaim' then no other thread should
	  be running otherwise we might crash (one thread still trying to allocate
	  some Eiffel memory, while we are doing reclaim == not good). We use
	  EIF_THR_CANCEL whenever we can as EIF_THR_KILL is too strong and might
	  have some side effects such as printing `Killed' on the console on Linux.
	Affects: eif_thread.c, garcol.c, rt_globals.h and rt_threads.h


Revision 50999 - Directory Listing
Modified Thu May 12 04:48:20 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition for NATURAL_64 constants.


Revision 50966 - Directory Listing
Modified Wed May 11 21:52:29 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed an alignment problem that was discovered on Solaris using gcc. To avoid
  that we simply do a memory copy now which does not care about alignment.


Revision 50965 - Directory Listing
Modified Wed May 11 21:19:12 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added `-lrt' in multithreaded mode as it is where it is defined.


Revision 50886 - Directory Listing
Modified Tue May 10 16:25:36 2005 UTC (14 years, 6 months ago) by alexk
Original Path: trunk/Src/bench/C
Removed declaration of `eif_special_any_type' as there is no such function anymore.


Revision 50853 - Directory Listing
Modified Mon May 9 18:25:49 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect parenthesis.


Revision 50852 - Directory Listing
Modified Mon May 9 17:47:10 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Made `ei_special' and `eif_is_special_type' macros for increased efficiency.
Added `ei_tuple' as macro to find if we are handling a TUPLE object.


Revision 50832 - Directory Listing
Modified Mon May 9 14:33:49 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Supported accessor functions to thread-relative context variables that
cannot be directly exported as DLL-data when run-time is compiled into DLL
under Windows (it is still faster than using Windows API calls).


Revision 50831 - Directory Listing
Modified Sat May 7 17:11:28 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
There is a limitation when building a shared library of the run-time on Windows
  where you cannot mix __declspec(thread) with __declspec(export).


Revision 50588 - Directory Listing
Modified Fri Apr 29 19:02:37 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Made code compile under Unix where BOOL is not defined.


Revision 50567 - Directory Listing
Modified Fri Apr 29 08:53:09 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Turned echo off in the root make.bat because it is turned off in the first local
make.bat anyway.


Revision 50495 - Directory Listing
Modified Thu Apr 28 12:23:28 2005 UTC (14 years, 7 months ago) by jfiat
Original Path: trunk/Src/bench/C
Optimized debugger regarding special values.
Especially for object having a Special value as attribute.
For classic, before for some dark reasons, each time we asked for the attributes value of an object
all Special attributes were filled too. (Most likely a small optimization to display STRING value in debugger)
but a big performance issue when dealing with big ARRAY or even big STRING objects.

And with recent EV_GRID design, since we compute some value only when required (at display) this was a lot of useless processing.


Revision 50466 - Directory Listing
Modified Wed Apr 27 08:28:10 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Supported access to thread-relative contexts using C compiler built-in
support for thread-local storage when possible.


Revision 50465 - Directory Listing
Modified Wed Apr 27 08:16:46 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Added a macro that tells whether C compiler supports thread-local storage
specifier or not.


Revision 50464 - Directory Listing
Modified Wed Apr 27 06:02:44 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Merged macros EIF_WIN32 and EIF_WINDOWS into EIF_WINDOWS as they had the same meaning.


Revision 50456 - Directory Listing
Modified Tue Apr 26 20:53:41 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Use our RTI64C macros to define integer 64 bits constant.


Revision 50346 - Directory Listing
Modified Fri Apr 22 16:32:56 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Added macros for fast access to successfully completed once features of
different kind (single-thread, thread-relative, process-relative).
Added macros for complete implementation of functions for constant attributes.
Supported fields that indicate successful completion of once feature.


Revision 50344 - Directory Listing
Modified Fri Apr 22 16:18:07 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Added a field to support fast access to successfully completed once feature result.
Removed macros that are no longer used.


Revision 50342 - Directory Listing
Modified Fri Apr 22 15:03:13 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Added a check to avoid freeing once indexes when running under debugger:
this can be later used to implement fast access to once results.


Revision 50341 - Directory Listing
Modified Fri Apr 22 15:01:27 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Cosmetics.


Revision 50335 - Directory Listing
Modified Fri Apr 22 02:17:37 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Ensured that `CHRPAD' does its computation using `rt_uint_ptr' type.


Revision 50333 - Directory Listing
Modified Fri Apr 22 02:12:38 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Moved `NBLOCKS' definition to `malloc.c' as it is only used there.


Revision 50332 - Directory Listing
Modified Fri Apr 22 02:12:07 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Moved `NBLOCKS' from rt_malloc.h to current as only `malloc.c' is using it.
Updated value of `NBLOCKS' for 64 bits as now on 64 bits you can allocate
  up to 2^59, meaning a greater NBLOCKS value compared to 32 bits.
Removed a cast to `int32' in `add_core' which was doing an infinite loop if
  `nbytes' had a low 32 bits part smaller than `asked'.
Ensured that `CHRPAD' does its computation using `rt_uint_ptr' type.


Revision 50310 - Directory Listing
Modified Fri Apr 22 00:01:59 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Defined `eif_64_bits' depending on the platform.


Revision 50309 - Directory Listing
Modified Thu Apr 21 23:57:48 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Ensured that `ovs_size' from the `union overhead' structure was defined on
  the same size as a POINTER. As a result it enables us to allocate more
  (i.e 2^59) than 2^27 which was our previous limit. It is not perfect yet
  as on the Eiffel side the count cannot be more than 2^31, but it is much
  better (at least for 64 bits platform).


Revision 50307 - Directory Listing
Modified Thu Apr 21 23:54:28 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Define `EIF_64_BITS' on 64 bits platform. Needed to define some larger
  predefined constants.


Revision 50250 - Directory Listing
Modified Wed Apr 20 22:33:57 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Enable creation of `like argument' when argument is actually a formal.


Revision 50199 - Directory Listing
Modified Tue Apr 19 15:21:34 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Reintroduced CAT3 macro needed to properly define RTOFN for all platforms.


Revision 50076 - Directory Listing
Modified Sun Apr 17 15:18:19 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Added notes that dynamic byte code loading is not supported for once routines.


Revision 50075 - Directory Listing
Modified Sun Apr 17 15:14:28 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Added definitions of
- array that contains process-relative once routines results;
- count for such routines;
- arrays that are used to calculate once indexes.
Added initialization of the arrays above.


Revision 50074 - Directory Listing
Modified Sun Apr 17 15:10:43 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Added routines that assign once indexes to once routines given their body
index (or code index, if replication is taken into account).
Added routines that allocate and free arrays that are used to calculate once
indexes.


Revision 50073 - Directory Listing
Modified Sun Apr 17 15:03:36 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Supported process-relative once routines in workbench mode.
Changed semantics of once routines to share the same data across different
generic derivations of the same generic class.
Ensured that local variables in a once routine are initialized only when it has
not been evaluated yet.


Revision 50072 - Directory Listing
Modified Sun Apr 17 14:56:59 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Supported process-relative once routines in workbench mode.
Changed semantics of once routines to share the same data across different
generic derivations of the same generic class.


Revision 50071 - Directory Listing
Modified Sun Apr 17 14:50:55 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Added declarations routines that assign once indexes to once routines given
their body index (or code index, if replication is taken into account).


Revision 50070 - Directory Listing
Modified Sun Apr 17 14:48:35 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Added declarations of array that contains process-relative once routines
results and declaration of count for such routines.


Revision 50069 - Directory Listing
Modified Sun Apr 17 14:42:59 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Corrected declarations of memory barrier macros.
Added a type definition for data of process-relative once routines.


Revision 50068 - Directory Listing
Modified Sun Apr 17 14:38:16 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Added declarations of array(s) of once indexes.


Revision 50067 - Directory Listing
Modified Sun Apr 17 14:37:15 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Added declarations and macros to allocate and free array(s) of once indexes.


Revision 50066 - Directory Listing
Modified Sun Apr 17 14:34:24 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Added a type definition for once index (index into array of once results).


Revision 50048 - Directory Listing
Modified Fri Apr 15 12:36:24 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Supported decoding of once routine kind (thread-relative or process-relative).


Revision 50047 - Directory Listing
Modified Fri Apr 15 12:31:26 2005 UTC (14 years, 7 months ago) by alexk
Original Path: trunk/Src/bench/C
Added codes for marks that distinguish between thread-relative and
process-relative once routines.


Revision 49973 - Directory Listing
Modified Mon Apr 11 21:20:04 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Renamed `g_stat' and `g_data' into `rt_g_stat' and `rt_g_data' as `g_stat'
  was conflicting with the GTK 2.6 `g_stat' routine.


Revision 49876 - Directory Listing
Modified Wed Apr 6 19:50:04 2005 UTC (14 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a bug where byteorder should be only 1234 or 4321 otherwise in `run_idr.c'
  where it is used some code path would not be taken and thus storing no values
  at all.


Revision 49825 - Directory Listing
Modified Tue Apr 5 00:28:43 2005 UTC (14 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect definition of `eif_integer_64_constant.
Added definition of `eif_natural_64_constant'.
Added `-lrt' in threads mode to get `nanosleep'.


Revision 49824 - Directory Listing
Modified Tue Apr 5 00:27:51 2005 UTC (14 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition of eif_natural_64_constant


Revision 49812 - Directory Listing
Modified Mon Apr 4 19:34:24 2005 UTC (14 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
New configuration file for Solaris 10 on x86 architecture.


Revision 49576 - Directory Listing
Modified Tue Mar 29 16:25:38 2005 UTC (14 years, 8 months ago) by alexk
Original Path: trunk/Src/bench/C
Used unsigned format specification to display unsigned constants.


Revision 49552 - Directory Listing
Modified Sat Mar 26 03:10:17 2005 UTC (14 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Added support for natural constant.


Revision 49390 - Directory Listing
Modified Tue Mar 22 05:25:59 2005 UTC (14 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Use INTEGER instead of INTEGER_32 as aliasing is not yet properly implemented.


Revision 49296 - Directory Listing
Modified Fri Mar 18 10:56:10 2005 UTC (14 years, 8 months ago) by alexk
Original Path: trunk/Src/bench/C
Changed format in which class name is stored to avoid a limit of 256 chars.


Revision 49233 - Directory Listing
Modified Wed Mar 16 09:17:37 2005 UTC (14 years, 8 months ago) by alexk
Original Path: trunk/Src/bench/C
Corrected type of a field used to store once manifest string in finalized
mode to be a reference to a string rather than a pointer to a reference
(this is not related to execution and is only a typing issue).


Revision 49209 - Directory Listing
Modified Tue Mar 15 19:28:56 2005 UTC (14 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Removed some static declaration and put them in `eif_show_console' as locals
  since this is the only place where they are used.


Revision 49165 - Directory Listing
Modified Mon Mar 14 12:50:40 2005 UTC (14 years, 8 months ago) by alexk
Original Path: trunk/Src/bench/C
Made `excatch' shared as it is not used as a public function anymore.
Added two new functions that are used as try_enter/try_leave brakets to
install exception handler for once routines.
Reverted `exft' to be available only in non-workbench mode as it is no longer
used to emulate execution vector in once routines.


Revision 49164 - Directory Listing
Modified Mon Mar 14 12:49:12 2005 UTC (14 years, 8 months ago) by alexk
Original Path: trunk/Src/bench/C
Changed exception processing in once routines to avoid adding a dummy
execution vector as it prevents debugger from displaying execution stack
properly. Now a vector to catch exceptions in once routine is placed behind
a vector of the once routine itself, so that a debugger does not notice it.
Set jump buffer for a routine with rescue clause only after `setjmp' is
performed as otherwise an asynchronios signal could cause to `longjmp' with
uninitialized jump buffer.


Revision 49163 - Directory Listing
Modified Mon Mar 14 12:43:36 2005 UTC (14 years, 8 months ago) by alexk
Original Path: trunk/Src/bench/C
Changed exception processing in once routines to avoid adding a dummy
execution vector as it prevents debugger from displaying execution stack
properly. Now a vector to catch exceptions in once routine is placed behind
a vector of the once routine itself, so that a debugger does not notice it.


Revision 49162 - Directory Listing
Modified Mon Mar 14 12:17:48 2005 UTC (14 years, 8 months ago) by alexk
Original Path: trunk/Src/bench/C
Moved `excatch' to "rt_except.h" as not used as a public function anymore.
Added two new functions that are used as try_enter/try_leave brakets to
install exception handler for once routines.
Reverted `exft' to be available only in non-workbench mode as it is no longer
used to emulate execution vector in once routines.


Revision 49161 - Directory Listing
Modified Mon Mar 14 12:13:00 2005 UTC (14 years, 8 months ago) by alexk
Original Path: trunk/Src/bench/C
Moved `excatch' to "rt_except.h" as not used as a public function anymore.


Revision 49106 - Directory Listing
Modified Fri Mar 11 15:43:39 2005 UTC (14 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed integration error at version 2.84 where we inadvertantly changed the
  creation flag for CreateProcess making programs such as `cmd.exe' to fail.


Revision 49006 - Directory Listing
Modified Tue Mar 8 08:40:18 2005 UTC (14 years, 9 months ago) by alexk
Original Path: trunk/Src/bench/C
Guarded calls to buffer read and write functions to avoid violation of the
precondition that requires a number of bytes to be non-zero (positive).


Revision 48956 - Directory Listing
Modified Sat Mar 5 08:35:57 2005 UTC (14 years, 9 months ago) by alexk
Original Path: trunk/Src/bench/C
Added new macros for once routines to handle exceptions properly and
for regular routines to mimic try/catch blocks.


Revision 48955 - Directory Listing
Modified Sat Mar 5 08:32:30 2005 UTC (14 years, 9 months ago) by alexk
Original Path: trunk/Src/bench/C
Changed processing of once routines to take into account the latest
modifications in once result storage and to check preconditions of once
routines independetly from their execution status.
Fixed bug with calling profiler at retry instruction when profiler is disabled.


Revision 48954 - Directory Listing
Modified Sat Mar 5 08:25:29 2005 UTC (14 years, 9 months ago) by alexk
Original Path: trunk/Src/bench/C
Made some functions public to handle exceptions in once routines.
Temporary changed processing of routine failure until this is finalized in the
forthcoming standard.
Corrected processing of exception stack in "exok" to take into account
stack state after "retry" and a special frame EX_OSTK to catch exceptions.
Corrected function that cleared the exception stack ("exclear"), but did not
decreased exception level at the same time.


Revision 48953 - Directory Listing
Modified Sat Mar 5 08:10:37 2005 UTC (14 years, 9 months ago) by alexk
Original Path: trunk/Src/bench/C
Changed type of the field that holds references to once function results,
because now they are structures that hold not only the result object, but also
execution status and exception code.


Revision 48952 - Directory Listing
Modified Sat Mar 5 08:09:31 2005 UTC (14 years, 9 months ago) by alexk
Original Path: trunk/Src/bench/C
Changed return type of "onceset" to the actual one.


Revision 48951 - Directory Listing
Modified Sat Mar 5 08:02:56 2005 UTC (14 years, 9 months ago) by alexk
Original Path: trunk/Src/bench/C
Changed return type of "onceset" to the actual one.


Revision 48950 - Directory Listing
Modified Sat Mar 5 08:01:21 2005 UTC (14 years, 9 months ago) by alexk
Original Path: trunk/Src/bench/C
Declared new types and added new macros for once routines in
multi-threaded code.


Revision 48949 - Directory Listing
Modified Sat Mar 5 07:59:17 2005 UTC (14 years, 9 months ago) by alexk
Original Path: trunk/Src/bench/C
Made some functions public to handle exceptions in once routines.


Revision 48941 - Directory Listing
Modified Sat Mar 5 00:30:14 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Refactored and optimized code to read/write storables:
  - Made `buffer_read' a command rather than a query, as if it fails, then
    it will raise an exception, it won't have a zero value.
  - Improved performance of `buffer_read' and `buffer_write' by using `memcpy'
    rather than manually copying byte per byte (it gives a 2% speed up in compiler)
  - Updated `readline' after changing `buffer_read'.
  - `end_of_buffer' and `current_position' are only updated by routine reading
    and writting the storable data.
  - Now `store_write_func' takes the number of bytes as argument rather than
    querying `current_position' (thus making the code more modular), thus
	rewrote `store_write'.


Revision 48940 - Directory Listing
Modified Sat Mar 5 00:25:11 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Do not read/reset `current_position' in `parsing_compiler_write' or
  `parsing_store_write' as it is done by the caller. This removes the
  coupling between storable code and code that performs the read.
  Now number of bytes to be written is passed as argument.


Revision 48939 - Directory Listing
Modified Sat Mar 5 00:23:55 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Do not reset `current_position' or `end_of_buffer' in `parsing_retrieve_read_with_compression'
  as it is done by the caller. This removes the coupling between storable code
  and code that performs the read.


Revision 48938 - Directory Listing
Modified Sat Mar 5 00:20:04 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Use `rt_main.h' instead of `server.h' to get `debug_mode' (it was previously
  defined in "server.h")


Revision 48937 - Directory Listing
Modified Sat Mar 5 00:19:23 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Changed the signature of `store_write_func' and `old_store_write_func'
  which now takes an integer argument to know how many bytes they need
  to write instead of querying the global variable `current_position'
  which can be modified by anyone and thus potentially putting at risk
  those routines.


Revision 48936 - Directory Listing
Modified Sat Mar 5 00:19:06 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Use `rt_main.h' to get `debug_mode' as its definition has been moved from `server.h'.


Revision 48935 - Directory Listing
Modified Sat Mar 5 00:18:06 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Exported `shared' routines of the run-time otherwise we cannot compile
  EiffelStudio with a shared run-time.


Revision 48934 - Directory Listing
Modified Sat Mar 5 00:15:49 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Added `RT_LNK' to set_mismatch_information as otherwise application using the
  runtime as DLL would not link.


Revision 48933 - Directory Listing
Modified Sat Mar 5 00:15:11 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Moved definition of TIMEOUT in `rt_main.h'.


Revision 48932 - Directory Listing
Modified Sat Mar 5 00:14:53 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Exported routines for DLLs as otherwise using the runtime as DLL will not
  work when compiling EiffelStudio.


Revision 48931 - Directory Listing
Modified Sat Mar 5 00:13:03 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Exported routine `eif_register_cleanup' for DLLs as it is used in the Windows
  version of EiffelNet and in `ewb.lib' C library used by the compiler for
  debugging.


Revision 48791 - Directory Listing
Modified Sun Feb 27 05:54:44 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Removed the -fPIC option as it slows down performance of the run-time
and generated code by about 25% (492s instead of less than 400s for the
compiler). The issue is that I don't remember exactly why it was added,
it possibly is because of an eweasel test, but I'm not sure. So if
someone reads this then he must be careful in putting back this option
as it has a price.


Revision 48652 - Directory Listing
Modified Wed Feb 23 02:03:53 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed typo in `MTrun_idr.$obj' name


Revision 48648 - Directory Listing
Modified Wed Feb 23 01:55:20 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Moved `idr_xx' routine to `idrs_helpers.h to avoid useless warnings when
  they were defined in `idrs.h' but not used in the C file that included them.


Revision 48647 - Directory Listing
Modified Wed Feb 23 01:54:26 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Use `idrs_helpers.h' file to get the `idr_xx' routines.


Revision 48646 - Directory Listing
Modified Wed Feb 23 01:54:09 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Made wh_obj of type `rt_uint_ptr' which is better IMHO to represent pointer
  values.


Revision 48645 - Directory Listing
Modified Wed Feb 23 01:53:31 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed C warning for incorrect formatter usage due to recent change in the type
  of wh_offset.


Revision 48644 - Directory Listing
Modified Wed Feb 23 01:53:11 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed C warning, since `sprintf' adds the null terminating character, no need
  to add it.


Revision 48639 - Directory Listing
Modified Wed Feb 23 01:09:48 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a bug where we could free twice `last_ex' because we forgot to reset
  it to NULL after freeing it.


Revision 48638 - Directory Listing
Modified Wed Feb 23 01:09:07 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect comment termination.


Revision 48637 - Directory Listing
Modified Wed Feb 23 00:02:15 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Updated due to changes in `Jmakefile'.


Revision 48636 - Directory Listing
Modified Tue Feb 22 23:59:25 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
We now always include `idrs.o' (formerly libidr.a) in all variant of the
  runtime (before it was included indirectly from `network.o' for the
  workbench version only, now `network.o' does not include it)


Revision 48635 - Directory Listing
Modified Tue Feb 22 23:58:28 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Updated to new name of IDR library: libidr.a -> idrs.o


Revision 48634 - Directory Listing
Modified Tue Feb 22 23:58:09 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
No need to include `libidr.a' in `network.o' because:
  - it is now called `idrs.o'
  - it is always included in the runtime and therefore we cannot include it
    twice (as it would cause some C compilation errors).


Revision 48633 - Directory Listing
Modified Tue Feb 22 23:57:06 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Updated due to new Jmakefile.


Revision 48632 - Directory Listing
Modified Tue Feb 22 23:56:50 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Updated to match new IDR API which has only one object file now.


Revision 48631 - Directory Listing
Modified Tue Feb 22 23:56:05 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Added CustomObjectTarget in order to have an object file as target.


Revision 48629 - Directory Listing
Modified Tue Feb 22 23:15:07 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
To prevent a segmentation fault on platform where C compiler generates
  an exception when casting a pointer to an integer type directly.


Revision 48626 - Directory Listing
Modified Tue Feb 22 23:07:07 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Removed duplicated code and use the one from `idrs/idrs.obj' instead. This
  is why now `idrs.obj' is also included in the finalized runtime.


Revision 48625 - Directory Listing
Modified Tue Feb 22 23:06:01 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Forgot to include `idrs.obj' file in finalized mode, since we have removed
  duplicated code from `run_idr.c'.


Revision 48624 - Directory Listing
Modified Tue Feb 22 23:05:25 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Use new header file for IDR.


Revision 48623 - Directory Listing
Modified Tue Feb 22 23:01:19 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
New idrs.obj file replacing `idr.lib'.


Revision 48622 - Directory Listing
Modified Tue Feb 22 23:00:52 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Major review of how communication is done:
 - speed up `idr_union' by using a direct access rather than a loop to find
   the proper `idr_xx' routine.
 - temporarly fixed memory leaks by freeing the last used allocated memory if any.
   it does not fix the memory leak per say since the last allocated block of memory
   is never freed, but it is good enough as now memory will not grow while debugging
   (this was most visible when you had a conditional breakpoint in your code).
 - added new `idr_xx' routine for EIF_REFERENCE, rt_uint_ptr and size_t.


Revision 48621 - Directory Listing
Modified Tue Feb 22 22:57:55 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Added MAX_REQUEST_TYPE so that we can statically create a C array with the
  right size no matter how many new requests we add.


Revision 48620 - Directory Listing
Modified Tue Feb 22 22:57:06 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Made `wh_offset' of type int since there is no reason to be `long' and because
  it causes some portability problem.


Revision 48619 - Directory Listing
Modified Tue Feb 22 22:56:38 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Removed usage of a tempory local variable, instead use argument directly.


Revision 48618 - Directory Listing
Modified Tue Feb 22 22:56:05 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Removed non-needed cast which was incorrect.
Cosmetics.


Revision 48617 - Directory Listing
Modified Tue Feb 22 22:55:18 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Adapted to new name of `idrf_pos' which is `idrf_reset_pos'.
Fixed various memory leaks.


Revision 48616 - Directory Listing
Modified Tue Feb 22 22:54:55 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Adapted to new `idrs.obj' file.
Removed watcom support.


Revision 48614 - Directory Listing
Modified Tue Feb 22 22:54:17 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Added `main' for the Windows platform too, now `WinMain' uses `main'.
Added to `main' some code to debug memory leaks when necessary.
Fixed memory leak by freeing `sp' when not used anymore, same with `local'
  which scope was very localized.


Revision 48613 - Directory Listing
Modified Tue Feb 22 22:52:40 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a memory leak: free the stream used with the debugged application.


Revision 48612 - Directory Listing
Modified Tue Feb 22 22:52:03 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed memory leak due to allocating `envstring' over and over. Now it is
  a static and we reallocate it rather than allocating a new one each time.


Revision 48611 - Directory Listing
Modified Tue Feb 22 22:51:10 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Adapted to new name of `idrf_pos' which is `idrf_reset_pos'.


Revision 48610 - Directory Listing
Modified Tue Feb 22 22:50:31 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Simplified implementation of IDR as only a subset is needed. The main
 change is that now the default implementation does not do platform
 independent serialization for efficiency purpose since it was not used
 across platforms.


Revision 48572 - Directory Listing
Modified Sat Feb 19 02:08:51 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Use `%ld' instead of `%lu' since we are storing signed values.


Revision 48571 - Directory Listing
Modified Sat Feb 19 02:08:25 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug where `rt_table' is not set to NULL after freeing it.


Revision 48508 - Directory Listing
Modified Tue Feb 15 23:11:35 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Ensure that all characters are printed out to `stdout'.


Revision 48500 - Directory Listing
Modified Tue Feb 15 19:26:57 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Removed warnings for casting directly a pointer to an integer. One has to
  first do cast it into an equivalent signed integer size before.
  On VMS with a special option, the previous code would raise an exception.


Revision 48483 - Directory Listing
Modified Tue Feb 15 17:08:23 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Remove useless cast.


Revision 48482 - Directory Listing
Modified Tue Feb 15 17:08:08 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Use `rt_uint_ptr' for `op_third/op_size'.


Revision 48443 - Directory Listing
Modified Sat Feb 12 23:55:01 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition for RTU64C macro.
Remove usage of CAT2 to define RTI64C and RTU64C because of a bug in the
  Borland C preprocessor which causes some very bizarre syntax error if used.
  Here we just expanded CAT2 and it works. Bug was found trying to compile
  `eif_helpers.h' under Borland.


Revision 48442 - Directory Listing
Modified Sat Feb 12 23:54:43 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Remove usage of CAT2 to define RTI64C and RTU64C because of a bug in the
  Borland C preprocessor which causes some very bizarre syntax error if used.
  Here we just expanded CAT2 and it works. Bug was found trying to compile
  `eif_helpers.h' under Borland.


Revision 48438 - Directory Listing
Modified Sat Feb 12 02:17:41 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Added support for setting/retrieving of NATURAL_XX attributes.


Revision 48367 - Directory Listing
Modified Fri Feb 11 00:08:38 2005 UTC (14 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Added new stuff for 64 bits version of Linux.


Revision 48271 - Directory Listing
Modified Fri Feb 4 18:55:40 2005 UTC (14 years, 10 months ago) by alexk
Original Path: trunk/Src/bench/C
Changed the value of SK_BMASK to match the maximum bit count
supported by the compiler.


Revision 48215 - Directory Listing
Modified Tue Feb 1 19:54:16 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition for NATURAL_64 manifest constants in C generated code.


Revision 48214 - Directory Listing
Modified Tue Feb 1 19:51:07 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition for manifest natural_64 constants.


Revision 48112 - Directory Listing
Modified Sun Jan 30 18:20:28 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added cast from POINTER to NATURAL/INTEGER type (issue found while melting
  a WEL application where a lot of POINTER to NATURAL/INTEGER)


Revision 48111 - Directory Listing
Modified Sun Jan 30 01:13:50 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `eif_type_by_object' declaration as it does not exist, replaced it by a macro which
  calls `eiftype'.
Added declaration for `eif_type_by_reference' (as it is public per CECIL man page).


Revision 48087 - Directory Listing
Modified Sat Jan 29 03:29:24 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added `string.h' to get definition for `memcpy'.


Revision 48056 - Directory Listing
Modified Fri Jan 28 23:46:48 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug report #4101 where we forgot to enable the GC after a crash occurred
  while retrieving a storable.


Revision 47879 - Directory Listing
Modified Tue Jan 25 07:09:56 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added `get_xxx' routines in `rt_bc_reader.h'.
Updated `interp.c' accordingly.
Added support for NATURAL_XX constants and conversion.


Revision 47878 - Directory Listing
Modified Tue Jan 25 07:08:54 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Reused `get_xx' routines from `rt_bc_reader.h'.


Revision 47877 - Directory Listing
Modified Tue Jan 25 06:56:16 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Renamed `file_size' into `eif_file_size' as the former name caused a
  conflict with the Oracle OCI library.


Revision 47806 - Directory Listing
Modified Mon Jan 24 22:39:40 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Updated linux-ppc with missing definitions


Revision 47805 - Directory Listing
Modified Mon Jan 24 22:35:31 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Use correct format for NATURAL_32 and INTEGER_32.


Revision 47767 - Directory Listing
Modified Fri Jan 21 23:16:56 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a range checking so that when `echclass' is 0 we get the class name
  (as it is simply ANY).


Revision 47759 - Directory Listing
Modified Fri Jan 21 19:21:25 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `ise_printf' definition, it is not a `rt_private' routine in `rt_assert.h'.


Revision 47758 - Directory Listing
Modified Fri Jan 21 19:21:01 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `ise_printf' definition from `main.c', it is not a `rt_private'
  routine in `rt_assert.h'.


Revision 47757 - Directory Listing
Modified Fri Jan 21 19:19:42 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added a way to define NATURAL_64 constants.


Revision 47756 - Directory Listing
Modified Fri Jan 21 19:18:30 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added `c_outu' and `c_outu64' to display natural types.


Revision 47676 - Directory Listing
Modified Wed Jan 19 19:09:02 2005 UTC (14 years, 10 months ago) by alexk
Original Path: trunk/Src/bench/C
Used RTI64C macro to define INTEGER_64 constants for conversion
routines from NATURAL_64 to REAL_32 and REAL_64 types.


Revision 47672 - Directory Listing
Modified Wed Jan 19 17:24:35 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Applied same optimization of eif_uint64_to_real32 to eif_uint64_to_real64.


Revision 47671 - Directory Listing
Modified Wed Jan 19 17:22:49 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed C compiler warning.


Revision 47670 - Directory Listing
Modified Wed Jan 19 17:19:23 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Removed C compiler warnings.


Revision 47669 - Directory Listing
Modified Wed Jan 19 09:29:15 2005 UTC (14 years, 10 months ago) by alexk
Original Path: trunk/Src/bench/C
Corrected conversion routine from NATURAL_64 to REAL_32
(it used right shift by 2 instead of by 1) and optimized it to avoid
any conditional instructions.


Revision 47667 - Directory Listing
Modified Tue Jan 18 22:48:31 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added `esuintXX_size' macros for NATURAL_XX types.


Revision 47586 - Directory Listing
Modified Fri Jan 14 03:12:19 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Like for ipc\shared\identify.c length of uuencoded pipes was hard-coded. Now
  it is not so that it works fine on both 32 and 64 bits.


Revision 47585 - Directory Listing
Modified Fri Jan 14 03:00:19 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Moved -m64 flags to the `binary_format' entry so that we can actually compile
  simple executable.


Revision 47581 - Directory Listing
Modified Fri Jan 14 02:05:21 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition for `eif_natural_64_display', `d_nanosleep' and `d_uint64_to_real'.


Revision 47578 - Directory Listing
Modified Fri Jan 14 02:00:09 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition for `eif_natural_64_display', `d_nanosleep' and `d_uint64_to_real'.


Revision 47576 - Directory Listing
Modified Fri Jan 14 01:52:26 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition for `eif_natural_64_display' and `d_uint64_to_real'.


Revision 47575 - Directory Listing
Modified Fri Jan 14 01:46:47 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition for `eif_natural_64_display' and `d_uint64_to_real'.


Revision 47572 - Directory Listing
Modified Fri Jan 14 00:57:36 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition of `eif_natural_64_display' and `d_uint64_to_real' supported
  by Borland.


Revision 47571 - Directory Listing
Modified Fri Jan 14 00:57:00 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Removed spurious break; after a break;.


Revision 47570 - Directory Listing
Modified Fri Jan 14 00:53:48 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition for `eif_natural_64_display' and `d_uint64_to_real' (the later
  is defined since VC++ version 8.0 for 64 bits).


Revision 47569 - Directory Listing
Modified Fri Jan 14 00:47:40 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added support for NATURAL_XX types.
Cosmetics on switch statements.
Renamed INTEGER into INTEGER_32.


Revision 47568 - Directory Listing
Modified Fri Jan 14 00:47:27 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added support for NATURAL_XX types.
Renhamed BC_CAST_XXX into a name with better matching of the Eiffel name.
Got rid of the BC_SEP_XX opcodes and handling which were not used anymore.
Redid most of the binary operations as now we are garanteed that for most
  operations the left and right part of the binary operator are of the same
  type (as this is now handled at the compiler level through conversion). We
  could have done that after introducing conversion but we forgot to do so.
  It simplifies a lot the code.
Cosmetics on switch statements.


Revision 47567 - Directory Listing
Modified Fri Jan 14 00:41:33 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Renhamed BC_CAST_XXX into a name with better matching of the Eiffel name.
Got rid of the BC_SEP_XX opcodes which were not used anymore.


Revision 47566 - Directory Listing
Modified Fri Jan 14 00:40:03 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Strangely eweasel test `freez021' that used to pass started to fail after
  adding NATURAL_XX types support in the run-time. Looking at it now, it
  is very strange that it used to pass. The issue was due to the reset
  of `loc_set' which was not correct because the generated code does not
  expect an empty `loc_set' to start with. So after resetting it, we simply
  reallocated it.


Revision 47565 - Directory Listing
Modified Fri Jan 14 00:30:08 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added support for NATURAL_XX types, but since support is only in the run-time
  and not in the compiler we need to initialize the variables to -1. That
  needs to be removed when fully implemented in compiler.


Revision 47564 - Directory Listing
Modified Fri Jan 14 00:19:07 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in signature of the `eif_twc_XXX' which were not returning an EIF_INTEGER_32
  as expected by `three_way_comparison' in COMPARABLE.
Added support for NATURAL_XX types.
Added `eif_uint64_to_real32' and `eif_uint64_to_real64' to compensate about
  a missing functionality of VC++ 6.0 which cannot convert a uint64 into a floating
  point. On platform/C compilers that supports that we only do a cast.


Revision 47563 - Directory Listing
Modified Fri Jan 14 00:11:20 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added support for NATURAL_XX types.
Cosmetics on switch statements.


Revision 47562 - Directory Listing
Modified Fri Jan 14 00:09:17 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Implemented handling of BC_SPCREATE that we forgot to add when creation
  of specials were added.
Renhamed BC_CAST_XXX into a name with better matching of the Eiffel name.
Got rid of the BC_SEP_XX opcodes which were not used anymore.
Factored reading of constructed type the same way it is done in interp.c
  with `get_creation_type'.
Renamed INTEGER into INTEGER_32.
Added support for NATURAL_XX types.


Revision 47561 - Directory Listing
Modified Fri Jan 14 00:06:05 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added support for NATURAL_XX types.
Renamed INTEGER into INTEGER_32.


Revision 47560 - Directory Listing
Modified Fri Jan 14 00:03:13 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition of `eif_natural_64_display' to display unsigned integer 64.
Added definition of `d_uint64_to_real' has not all version of VC++ supports
  conversion of unsigned integer 64 to a floating point unit. When this is
  the case we use a helper function `eif_uint64_to_real_XX' to do the conversion.


Revision 47559 - Directory Listing
Modified Fri Jan 14 00:01:20 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added EIF_NATURAL_64_DISPLAY to display NATURAL_64 values.
Added HAS_BUILTIN_CONVERSION_FROM_UINT64_TO_FLOATING_POINT as (EIF_REAL_32) uint64
  cannot be compiled with VC++ 6.0. When this is the case we use a helper
  function `eif_uint64_to_real_XX' to do the conversion.


Revision 47503 - Directory Listing
Modified Wed Jan 12 00:35:39 2005 UTC (14 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added special buffering of `stdout' and `stdint' for VMS (See comments for details).


Revision 47424 - Directory Listing
Modified Thu Jan 6 21:47:10 2005 UTC (14 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added missing definition for `nanosleep'.


Revision 47419 - Directory Listing
Modified Thu Jan 6 19:31:40 2005 UTC (14 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Removed useless files since now `eif_size.h' is automatically generated.


Revision 47365 - Directory Listing
Modified Tue Jan 4 23:41:09 2005 UTC (14 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
To avoid a warning in `explode_scavenge_zone' about different size local
  variables we are doing the computation of the size immediately rather
  than couting the number of objects and then figure out the size.


Revision 47360 - Directory Listing
Modified Tue Jan 4 22:13:31 2005 UTC (14 years, 11 months ago) by king
Original Path: trunk/Src/bench/C
Updated copyright


Revision 47339 - Directory Listing
Modified Tue Jan 4 01:59:31 2005 UTC (14 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added `mkdir' to template.


Revision 47338 - Directory Listing
Modified Tue Jan 4 01:59:00 2005 UTC (14 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added missing definition for `mkdir' used in Makefile.SH scripts.


Revision 47337 - Directory Listing
Modified Tue Jan 4 00:25:39 2005 UTC (14 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition for `nanosleep' and `sigaltstack'.


Revision 47335 - Directory Listing
Modified Mon Jan 3 23:45:39 2005 UTC (14 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed one more error about unsigned arithmetic (i.e. not checking that `a-b'
  makes sense only iff a is greater than b) in `generational_collect. This
  was causing the GC to sometime empty the scavenge zone even though it was
  not necessary and therefore it was allocating more memory and we were ending
  up with too much free memory.
Replaced a `for' loop to initialize `size_table' and `age_table' in `mark_new_generation'
  by a call to `memset' in `generational_collect'.


Revision 47319 - Directory Listing
Modified Mon Jan 3 01:24:15 2005 UTC (14 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Refactored some code at the end of `allocate_free_list_helper' into a new
  routine `check_free_list' which basically performs the accounting of free
  memory available in free list and compare it with data in `c_data' or `e_data'
  for memory accounting.
Fixed memory accounting bug in `xrealloc' (found through above call to
  `check_free_list' which did not perform the correct memory accounting
  when after coalescing there was still not enough place for the new
  requested size. Now we update the used memory in two step, one after
  coalescing, and a second one after splitting the block which is greater
  than the requested size.
Fixed memory accounting bug in `explode_scavenge_zone' (thanks again
  to `check_free_list') where we did not update correctly the used memory.
  Indeed we were adding the correct amount of headers to `ml_over', but
  we also need to substract that same amount from `ml_used' since the
  explosion of the scavenge zone created as many zone as they were objects
  and not just a single zone.


Revision 47318 - Directory Listing
Modified Sun Jan 2 02:35:50 2005 UTC (14 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed `reclaim' as previous change was actually not doing the final reclaim.
Fixed `scollect' because memory accounting now using unsigned integer was
  incorrectly done (e.g. not checking that a - b only makes sense iff a is
  greater than b)
Cosmetic on `if' statement.


Revision 47245 - Directory Listing
Modified Sat Dec 25 02:25:36 2004 UTC (14 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added more macro for compatibility with previous version of compiler.


Revision 47223 - Directory Listing
Modified Fri Dec 24 23:14:33 2004 UTC (14 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
New run-time where following renaming patterns took place:
- SK_FLOAT -> SK_REAL32
- SK_DOUBLE -> SK_REAL64
- flt -> r32
- dbl -> r64
- float, real -> real32
- double -> real64
- DOUBLE -> REAL_64
- REAL -> REAL_32
Added NATURAL_XX type definition as well as in the `struct item' definition.


Revision 47212 - Directory Listing
Modified Fri Dec 24 11:22:05 2004 UTC (14 years, 11 months ago) by alexk
Original Path: trunk/Src/bench/C
Added macros for process-relative once routines.


Revision 47211 - Directory Listing
Modified Fri Dec 24 11:21:07 2004 UTC (14 years, 11 months ago) by alexk
Original Path: trunk/Src/bench/C
Added macros for memory barriers.


Revision 47156 - Directory Listing
Modified Tue Dec 21 19:41:33 2004 UTC (14 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Ensured that `nanosleep' did not exist on Windows.


Revision 47142 - Directory Listing
Modified Mon Dec 20 22:29:31 2004 UTC (14 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added detection for `nanosleep'.


Revision 47034 - Directory Listing
Modified Wed Dec 15 16:16:23 2004 UTC (14 years, 11 months ago) by alexk
Original Path: trunk/Src/bench/C
Added procedure `eif_thr_sleep' to delay thread execution for time inverval
specified in nanoseconds.


Revision 46973 - Directory Listing
Modified Tue Dec 7 23:31:56 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
New configuration for Mac OS X.


Revision 46972 - Directory Listing
Modified Tue Dec 7 22:46:35 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Defined `d_sigaltstack' for Solaris used to properly catch stack overflow.


Revision 46971 - Directory Listing
Modified Tue Dec 7 22:29:24 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Defined `d_sigaltstack' since it exists on SGI.


Revision 46966 - Directory Listing
Modified Tue Dec 7 19:06:22 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added definition for `d_sigaltstack' which is undefined on native windows platform.


Revision 46965 - Directory Listing
Modified Tue Dec 7 19:05:57 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Renamed `windows' into `windows-gcc-x86' for windows configuration using `gcc'
  and `cygwin'.


Revision 46964 - Directory Listing
Modified Tue Dec 7 19:05:06 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Forget protection of `c_sig_stk' with #ifdef HAS_SIGALTSTACK.


Revision 46963 - Directory Listing
Modified Tue Dec 7 18:38:22 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added `SIGFPE' to the list of dangerous signal too as on Linux it also performs
  an infinite loop if we immediately return from the signal handler.
Added usage of `sigaltstack' so that we can detect a stack overflow which
  manifests itself using the SIGSEGV signal.


Revision 46962 - Directory Listing
Modified Tue Dec 7 18:28:25 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added `d_sigaltstack' which is defined on Linux.


Revision 46961 - Directory Listing
Modified Tue Dec 7 18:26:59 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added entry for HAS_SIGALTSTACK needed to properly handle stack overflow
on Unix platforms.


Revision 46960 - Directory Listing
Modified Tue Dec 7 18:24:30 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added check for finding out if `sigaltstack' is available.


Revision 46959 - Directory Listing
Modified Mon Dec 6 19:09:49 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Removed special handling of SIGCLD and SIGCHLD signals as they are properly
set in `sig.c' and there is no need to change them. On linux setting them
was causing the call to `system' to execute but to return -1 as error code.


Revision 46958 - Directory Listing
Modified Mon Dec 6 19:08:45 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Removed useless repetition in the SGI case of SIGSEGV and SIGILL in `dangerous'
 since already present for the non SGI case..


Revision 46957 - Directory Listing
Modified Sun Dec 5 09:50:48 2004 UTC (15 years ago) by alexk
Original Path: trunk/Src/bench/C
Corrected position of a closing brace in #ifdef macros.


Revision 46956 - Directory Listing
Modified Sat Dec 4 05:40:05 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Made `ehandlr' and `exfpe' wrapper around new `eiffel_signal_handler' which
  combine both and reduced code duplication.
On SGI, made SIGTRAP raise a floating point exception exception because
  it is used to show integer divisio by zero.
Added some signal to the list of dangerous signal on SGI, because those signal
  after being executed don't go to the next instruction but to the same,
  therefore we end up in infinite loop (shown by eweasel test exec104).


Revision 46932 - Directory Listing
Modified Fri Dec 3 17:04:26 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Changed the type of `obj_nb' to be `uint32' and ensured that `uint32' was
used to store and retrieve (not long like before which caused retrieve to fail
on 64 bits big endian platform as `obj_nb' was 32 bits and `long' 64 bits.)


Revision 46926 - Directory Listing
Modified Thu Dec 2 22:03:41 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added -fPIC option as otherwise generated shared library of the run-time
 are not working.


Revision 46925 - Directory Listing
Modified Thu Dec 2 21:07:16 2004 UTC (15 years ago) by alexk
Original Path: trunk/Src/bench/C
Enclosed MSVC paths in quotes to allow for paths with spaces inside.


Revision 46923 - Directory Listing
Modified Thu Dec 2 20:34:40 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Renamed sgi and sgi-64, into irix-mips and irix-mips-64 to match new convention
  about value of ISE_PLATFORM (i.e. OS-Arch)


Revision 46922 - Directory Listing
Modified Thu Dec 2 20:18:22 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added warning about value you get for `d_eofpipe' on 64 bits as it maybe
incorrect due to the type of `mask'.


Revision 46921 - Directory Listing
Modified Thu Dec 2 20:01:55 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Due to a bug in Configure `d_eofpipe' was not properly defined.


Revision 46920 - Directory Listing
Modified Thu Dec 2 19:58:16 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Use `long' rather than `int' to ensure it works properly on 64 bits platform
to properly define the value of `d_eofpipe'.


Revision 46919 - Directory Listing
Modified Thu Dec 2 19:57:07 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
New configuration for Solaris 64 bits.


Revision 46910 - Directory Listing
Modified Thu Dec 2 17:08:32 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Use `MSVCDir' to compile the run-time, so that it will work on all machine
with Visual Studio installed.


Revision 46905 - Directory Listing
Modified Thu Dec 2 10:40:41 2004 UTC (15 years ago) by alexk
Original Path: trunk/Src/bench/C
Enclosed tests of %remove_desc% in quotes to avoid syntax errors when
the variable is not defined.


Revision 46904 - Directory Listing
Modified Thu Dec 2 10:38:44 2004 UTC (15 years ago) by alexk
Original Path: trunk/Src/bench/C
Removed deletion of "estudio.lmk", because it causes nmake to fail
when this file is not present, and because this file will be newly created
by writing to it anyway.


Revision 46903 - Directory Listing
Modified Thu Dec 2 03:05:04 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Updated to new config.sh template in `Configure'.


Revision 46902 - Directory Listing
Modified Thu Dec 2 02:38:07 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Updated config file to latest template.
Fixed missing `-lpthread'.


Revision 46901 - Directory Listing
Modified Thu Dec 2 02:13:50 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
New config.sh for Linux PowerPC.


Revision 46900 - Directory Listing
Modified Thu Dec 2 02:13:35 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
`chown' and `lstat' are actually defined (it is just that `Configure' does not
see them on Linux.
Fixed `cpp' to be `g++' and not the preprocessor.


Revision 46899 - Directory Listing
Modified Thu Dec 2 02:12:15 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Renamed it into `linux-ppc' to match new convention of platform name `OS-cpu'


Revision 46898 - Directory Listing
Modified Thu Dec 2 01:28:54 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Updated with new definition of JLDFLAGS.


Revision 46897 - Directory Listing
Modified Thu Dec 2 00:59:14 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Updated with new definition of JLDFLAGS.


Revision 46896 - Directory Listing
Modified Thu Dec 2 00:56:34 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Updated with new definition of JLDFLAGS


Revision 46894 - Directory Listing
Modified Thu Dec 2 00:48:01 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Updated `eif_pointer_display' to not raise a warning anymore.


Revision 46893 - Directory Listing
Modified Thu Dec 2 00:43:45 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect `cpp_stuff' to ensure proper concatenation.


Revision 46892 - Directory Listing
Modified Thu Dec 2 00:42:58 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Use RTI64C for 64 bits integer constants.


Revision 46890 - Directory Listing
Modified Thu Dec 2 00:39:03 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Removed warning.


Revision 46888 - Directory Listing
Modified Thu Dec 2 00:27:33 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Use CAT2 macro instead of ## for better portability.


Revision 46887 - Directory Listing
Modified Thu Dec 2 00:25:25 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Removed warning when calling `strlen' by adding cast to `(char *)'.


Revision 46886 - Directory Listing
Modified Thu Dec 2 00:25:05 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Since `pos' is unsigned, testing against < 0 makes no sense.


Revision 46885 - Directory Listing
Modified Thu Dec 2 00:23:27 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Fixed potential GC problem in case `eiffel_usage' is less than `e_mem_used'
as since `eiffel_usage' is unsigned, then we will get back a high value
rather than `0'.


Revision 46884 - Directory Listing
Modified Thu Dec 2 00:13:14 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
64 bits SGI configuration file.


Revision 46882 - Directory Listing
Modified Thu Dec 2 00:12:33 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Made sure `d_bsdsig' was defined (needed for proper inclusing of `signal.h' on SGI
 as it forces the _BSD_SIGNALS symbol to be defined.
Cosmetics.


Revision 46879 - Directory Listing
Modified Thu Dec 2 00:00:33 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Updated Makefile.SH after fixing `jmake' to produce JLDFLAGS instead of JLKFLAGS.


Revision 46878 - Directory Listing
Modified Wed Dec 1 23:59:48 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Removed LDFLAGS definition since it was not needed.


Revision 46858 - Directory Listing
Modified Wed Dec 1 23:12:58 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Only keep 1552 warning as the other ones are not there anymore.


Revision 46857 - Directory Listing
Modified Wed Dec 1 23:08:46 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added definition for `eif_sgi' and `eif_solaris'.


Revision 46856 - Directory Listing
Modified Wed Dec 1 23:05:18 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added entry for solaris.


Revision 46855 - Directory Listing
Modified Wed Dec 1 23:05:04 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added entry to define `EIF_SOLARIS'


Revision 46854 - Directory Listing
Modified Wed Dec 1 23:04:39 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Removed `solaris-2.5+' and replaced it with `solaris-sparc' instead using
the new output for `config.sh' as generated by Configure.


Revision 46853 - Directory Listing
Modified Wed Dec 1 23:04:03 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added `eif_solaris' definition.


Revision 46852 - Directory Listing
Modified Wed Dec 1 23:03:06 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Do not include <stdint.h> on Solaris as it does not exist. It is not needed
because in `eif_config.h' we include `inttypes.h' which contains the definition
for `intptr_t' and `uintptr_t'.


Revision 46851 - Directory Listing
Modified Wed Dec 1 23:02:01 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Avoid warning about incorrect formatting specifier.


Revision 46850 - Directory Listing
Modified Wed Dec 1 23:01:27 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Solaris also need `strings.h' for `index' and `rindex'.


Revision 46849 - Directory Listing
Modified Wed Dec 1 23:01:01 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Removed painful warning about type-punned pointer reported by gcc. It is
still unclear to me what it is supposed to warn you about, but no warning
is better than a warning!


Revision 46848 - Directory Listing
Modified Wed Dec 1 22:59:25 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Not used for a long time and completely out-of-date. Better to get rid of it
rather than keeping it.


Revision 46847 - Directory Listing
Modified Wed Dec 1 22:48:35 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
No need for special Makefile for VxWorks.


Revision 46845 - Directory Listing
Modified Wed Dec 1 22:15:17 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Include <string.h> for definition of `memset' used by FD_ZERO macro
on Solaris.


Revision 46844 - Directory Listing
Modified Wed Dec 1 22:14:07 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Need `strings.h' on Solaris too for `index' and `rindex'.


Revision 46841 - Directory Listing
Modified Wed Dec 1 20:12:40 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Made windows config file consistent with each other.
Added `eif_sgi' definition.


Revision 46840 - Directory Listing
Modified Wed Dec 1 20:07:04 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Improved `config.sh' content to avoid duplication. Added missing `mtldflags'
and removed non-used `sharedccflags'.
Added notion of `binary_format' and `platform_arch' flags to allow special
  compilation target (e.g. 32 ou 64 bits on the same platform).


Revision 46839 - Directory Listing
Modified Wed Dec 1 20:05:54 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
New configuration file obtained using Configure to take advantage of the more
  recent version of IRIX.


Revision 46838 - Directory Listing
Modified Wed Dec 1 20:04:23 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added EIF_SGI definition for SGI platform


Revision 46837 - Directory Listing
Modified Wed Dec 1 20:03:05 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
New default for SGI.


Revision 46831 - Directory Listing
Modified Wed Dec 1 18:24:23 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Removed debugging statement.
Added new filtering format for `nm' so that it works on SGI.


Revision 46830 - Directory Listing
Modified Wed Dec 1 18:23:47 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Use `USE_BSD_SIGNAL' to find out if we need to define _BSD_SIGNALS, but this
has to be done after we include `eif_portable.h' which defines the value for
`USE_BSD_SIGNAL'.


Revision 46829 - Directory Listing
Modified Wed Dec 1 18:22:50 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Precised why `strings.h' is needed on SGI.


Revision 46825 - Directory Listing
Modified Wed Dec 1 02:19:32 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Removed remaining occurrences of `register'.


Revision 46824 - Directory Listing
Modified Wed Dec 1 02:17:42 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings.
Removed useless `registerX' prefixes as nowadays C compiler are much smarter
  than the user.
Added copyright information.


Revision 46823 - Directory Listing
Modified Wed Dec 1 02:16:56 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added copyright information.
Fixed bug in preprocessor directive `HAS_SYS_SIGLIST' it should have been
  the opposite (not detected before because HAS_SYS_SIGLIST was alway undefined
  before.


Revision 46822 - Directory Listing
Modified Wed Dec 1 02:15:31 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings.
Added copyright information.


Revision 46821 - Directory Listing
Modified Wed Dec 1 02:13:10 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added copyright information.
Removed declaration of `eif_typename_len' since not used.


Revision 46820 - Directory Listing
Modified Wed Dec 1 02:11:54 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added copyright information.
Removed useless `registerX' prefixes as nowadays C compiler are much smarter
  than the user.


Revision 46819 - Directory Listing
Modified Wed Dec 1 02:11:36 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added copyright information.
Fixed bug in preprocessor directive `HAS_SYS_ERRLIST' it should have been
  the opposite (not detected before because HAS_SYS_ERRLIST was alway undefine
  before.


Revision 46818 - Directory Listing
Modified Wed Dec 1 02:10:36 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Added copyright information.
Redid preprocessor branching for including the right header files for directories.


Revision 46817 - Directory Listing
Modified Wed Dec 1 02:09:31 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Renamed `padding and `remainder' into `eif_padding and `eif_remainder' to
avoid conflicts with gcc built-in type.


Revision 46816 - Directory Listing
Modified Wed Dec 1 02:08:50 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Removed useless `rcsid' data which was causing warning by gcc.
Removed useless `registerX' prefixes as nowadays C compiler are much smarter
  than the user.


Revision 46815 - Directory Listing
Modified Wed Dec 1 02:08:39 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings.
Removed useless `rcsid' data which was causing warning by gcc.
Removed useless `registerX' prefixes as nowadays C compiler are much smarter
  than the user.


Revision 46814 - Directory Listing
Modified Wed Dec 1 02:08:06 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
Removed useless `rcsid' data which was causing warning by gcc.


Revision 46813 - Directory Listing
Modified Wed Dec 1 02:07:49 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings.
Removed useless `registerX' prefixes as nowadays C compiler are much smarter
  than the user.


Revision 46812 - Directory Listing
Modified Wed Dec 1 02:05:03 2004 UTC (15 years ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings.


Revision 46811 - Directory Listing