/[eiffelstudio]/branches/es-i18n/Src/C
ViewVC logotype

Log of /branches/es-i18n/Src/C

View Directory Listing Directory Listing


Sticky Revision:
(Current path doesn't exist after revision 70858)

Revision 63453 - Directory Listing
Modified Mon Sep 11 02:01:27 2006 UTC (13 years, 4 months ago) by schoelle
Branch for the i18n effort, starting off from a clean EiffelStudio trunk


Revision 63397 - Directory Listing
Modified Fri Sep 8 16:51:13 2006 UTC (13 years, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 4 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years 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 (14 years, 1 month 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 (14 years, 1 month 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 (14 years, 1 month 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 (14 years, 1 month 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 (14 years, 1 month 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 (14 years, 1 month 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 (14 years, 1 month 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 (14 years, 1 month 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 (14 years, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 2 months 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, 2 months 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, 2 months 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, 2 months 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, 2 months 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, 2 months 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, 3 months 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, 3 months 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, 3 months 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, 3 months 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, 3 months 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, 3 months 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, 3 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, 3 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, 3 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, 3 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, 3 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, 3 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, 3 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, 3 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, 3 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, 3 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, 4 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, 4 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, 4 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, 4 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 5 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 6 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 7 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 8 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 9 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 10 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years ago) by king
Original Path: trunk/Src/bench/C
Updated copyright


Revision 47339 - Directory Listing
Modified Tue Jan 4 01:59:31 2005 UTC (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years 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 (15 years, 1 month 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 (15 years, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month 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, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings.


Revision 46811 - Directory Listing
Modified Wed Dec 1 02:02:14 2004 UTC (15 years, 1 month 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.
Use `EIF_POINTER_DISPLAY' to display POINTER value.
Fixed formatting warnings.


Revision 46810 - Directory Listing
Modified Wed Dec 1 02:01:10 2004 UTC (15 years, 1 month 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.
Use `EIF_POINTER_DISPLAY' to display pointer value.


Revision 46809 - Directory Listing
Modified Wed Dec 1 02:00:09 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed useless `registerX' prefixes as nowadays C compiler are much smarter
  than the user.


Revision 46808 - Directory Listing
Modified Wed Dec 1 01:59:45 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings.
Reviewed inclusion or not of calling `signal' on SIGCHLD or SIGCLD.


Revision 46807 - Directory Listing
Modified Wed Dec 1 01:58:47 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings.
Removed useless local variable and associated computation.


Revision 46806 - Directory Listing
Modified Wed Dec 1 01:58:21 2004 UTC (15 years, 1 month 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 46805 - Directory Listing
Modified Wed Dec 1 01:50:11 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
`x2c.exe' is now compiled using the run-time ccflags and optimization level.


Revision 46804 - Directory Listing
Modified Wed Dec 1 01:49:29 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Only define `display_reminder' in finalized mode.


Revision 46803 - Directory Listing
Modified Wed Dec 1 01:41:56 2004 UTC (15 years, 1 month 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.
Added `myInvalidParameterHandler' for latest version of Microsoft C compiler
  to detect when we perform an incorrect call to one of the C standard API.


Revision 46802 - Directory Listing
Modified Wed Dec 1 01:39:11 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Previous commit did not remove all usage of `register' (sorry about that).


Revision 46801 - Directory Listing
Modified Wed Dec 1 01:38:48 2004 UTC (15 years, 1 month 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 46800 - Directory Listing
Modified Wed Dec 1 01:37:07 2004 UTC (15 years, 1 month 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.
Updated calls to `eif_bit_test' to include type of source.


Revision 46799 - Directory Listing
Modified Wed Dec 1 01:34:38 2004 UTC (15 years, 1 month 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.


Revision 46798 - Directory Listing
Modified Wed Dec 1 01:34:10 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings.


Revision 46797 - Directory Listing
Modified Wed Dec 1 01:33:41 2004 UTC (15 years, 1 month 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.
Removed useless `rcsid' data which was causing warning by gcc.


Revision 46796 - Directory Listing
Modified Wed Dec 1 01:31:49 2004 UTC (15 years, 1 month 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.
Fixed warning about non-used private declaration in WORKBENCH mode.
Use `EIF_POINTER_DISPLAY' for better portability betwee platforms regarding
  display of POINTER values.


Revision 46795 - Directory Listing
Modified Wed Dec 1 01:25:56 2004 UTC (15 years, 1 month 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 46794 - Directory Listing
Modified Wed Dec 1 01:25:15 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings.
Added copyright information.


Revision 46793 - Directory Listing
Modified Wed Dec 1 01:24:04 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings.


Revision 46792 - Directory Listing
Modified Wed Dec 1 01:23:34 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed useless `registerX' prefixes as nowadays C compiler are much smarter
  than the user.
Removed useless `rcsid' data which was causing warning by gcc.


Revision 46791 - Directory Listing
Modified Wed Dec 1 01:22:39 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added copyright information.


Revision 46790 - Directory Listing
Modified Wed Dec 1 01:21:59 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added copyright information.
64 bits port: freeze size of `LNGSIZ' to 4 bytes only. It is temporary
  until `INTEGER' is not fixed to 32 bits anymore.


Revision 46789 - Directory Listing
Modified Wed Dec 1 01:20:08 2004 UTC (15 years, 1 month 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 46788 - Directory Listing
Modified Wed Dec 1 01:18:42 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Updated `eif_bit_test' to take an extra first argument which is the type of
  the INTEGER_XX we are working with. This is needed because `(1 << n)' could
  result in a zero value when `n' is above `32' and we do not want that when
  doing it on an INTEGER_64 value.
Added copyright information.


Revision 46785 - Directory Listing
Modified Wed Dec 1 00:53:26 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings.
Added copyright information.


Revision 46784 - Directory Listing
Modified Wed Dec 1 00:52:44 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added copyright information.
Test if `setjmp' or `longjmp' are defined before defining them using `_setjmp'
  and `_longjmp'. Frankly I'm not sure this is needed, but since the C standard
  says that `setjmp' and `longjmp' are macros it does not really matter.


Revision 46783 - Directory Listing
Modified Wed Dec 1 00:50:42 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed useless `registerX' prefixes as nowadays C compiler are much smarter
  than the user.
64 bits port: updated data type to avoid warnings.
Added copyright information.


Revision 46782 - Directory Listing
Modified Wed Dec 1 00:50:16 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed. Header file for runtime generation of Makefile.SH is in C/U/runtime.H
  now.


Revision 46781 - Directory Listing
Modified Wed Dec 1 00:49:35 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings.
Added copyright information.
Removed useless `registerX' prefixes as nowadays C compiler are much smarter
  than the user.


Revision 46780 - Directory Listing
Modified Wed Dec 1 00:48:53 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed useless `registerX' prefixes as nowadays C compiler are much smarter
  than the user.
Added copyright information.


Revision 46779 - Directory Listing
Modified Wed Dec 1 00:46:49 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed useless local variable declaration in `dir_rewind'.


Revision 46778 - Directory Listing
Modified Wed Dec 1 00:45:43 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed useless `registerX' prefixes as nowadays C compiler are much smarter
  than the user.
Removed useless `rcsid' data which was causing warning by gcc.
64 bits port: updated data type to avoid warnings.


Revision 46777 - Directory Listing
Modified Wed Dec 1 00:42:28 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed useless `registerX' prefixes as nowadays C compiler are much smarter
  than the user.
Removed useless `rcsid' data which was causing warning by gcc.


Revision 46776 - Directory Listing
Modified Wed Dec 1 00:39:05 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect argument value for call to `setvbuf' on Windows.


Revision 46775 - Directory Listing
Modified Wed Dec 1 00:35:48 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed useless `registerX' prefixes as nowadays C compiler are much smarter
  than the user.


Revision 46774 - Directory Listing
Modified Wed Dec 1 00:33:20 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
New generated Makefile.SH from newly updated `Jmakefile'.


Revision 46773 - Directory Listing
Modified Wed Dec 1 00:21:40 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added copyright information.


Revision 46772 - Directory Listing
Modified Wed Dec 1 00:15:54 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added copyright information


Revision 46771 - Directory Listing
Modified Wed Dec 1 00:15:12 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added copyright statement.


Revision 46770 - Directory Listing
Modified Wed Dec 1 00:14:41 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added Copyright statement.


Revision 46769 - Directory Listing
Modified Wed Dec 1 00:08:47 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Updated to generate shared and multithreaded version of the runtime using the new
  runtime name. It should have been done this way rather than hand modifying
  the Makefile.SH, but at the time we did not know how to use `metaconfig' and `jmake'.


Revision 46768 - Directory Listing
Modified Wed Dec 1 00:03:07 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings.


Revision 46767 - Directory Listing
Modified Tue Nov 30 23:49:17 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
No need for `I_STRING' anymore as we can safely use `<string.h>'.


Revision 46766 - Directory Listing
Modified Tue Nov 30 23:48:16 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed reference to `time' as it is already included by some header files.


Revision 46765 - Directory Listing
Modified Tue Nov 30 23:47:42 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: Do not use hardcoded value for the size of the uuencoded string,
  instead we compute it depending on the size of a pointer.


Revision 46764 - Directory Listing
Modified Tue Nov 30 23:46:02 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
New generated Makefile.SH from newly updated `Jmakefile'.


Revision 46763 - Directory Listing
Modified Tue Nov 30 23:42:18 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Updated with new location for private runtime headers.


Revision 46762 - Directory Listing
Modified Tue Nov 30 23:41:36 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Necessary files have been moved into `C/bench'.


Revision 46761 - Directory Listing
Modified Tue Nov 30 23:40:46 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Updated to also compile multithreaded version.


Revision 46760 - Directory Listing
Modified Tue Nov 30 23:40:02 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
No need for `I_STRING' anymore as we can safely use `<string.h>'.


Revision 46759 - Directory Listing
Modified Tue Nov 30 23:39:40 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Use `EIF_POINTER_DISPLAY' format to display pointer value in hexadecimal.


Revision 46758 - Directory Listing
Modified Tue Nov 30 23:36:12 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Forgot % usage with EIF_POINTER_DISPLAY.


Revision 46757 - Directory Listing
Modified Tue Nov 30 23:31:13 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
New generated Makefile.SH from newly updated `Jmakefile'.


Revision 46756 - Directory Listing
Modified Tue Nov 30 23:30:52 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: use `EIF_REFERENCE' rather than `long' as this is what
we are actually passing from the Eiffel side.


Revision 46755 - Directory Listing
Modified Tue Nov 30 23:11:45 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Updated to new runtime layout and use better variable name.


Revision 46754 - Directory Listing
Modified Tue Nov 30 23:10:33 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Reviewed inclusion or not of calling `signal' on SIGCHLD or SIGCLD.
64 bits port: updated data type to avoid warnings.


Revision 46753 - Directory Listing
Modified Tue Nov 30 23:09:21 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Use one word variable, no more hyphen so that we can translate the windows
`config.sh' files with `bash'.


Revision 46752 - Directory Listing
Modified Tue Nov 30 23:08:31 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Reviewed inclusion or not of calling `signal' on SIGCHLD or SIGCLD.
Removed useless definition of `strdup' as `HAS_STRDUP' was always undefined.


Revision 46751 - Directory Listing
Modified Tue Nov 30 23:05:49 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed warning about using C routines without including the header file
  defining them.


Revision 46750 - Directory Listing
Modified Tue Nov 30 23:04:31 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings


Revision 46749 - Directory Listing
Modified Tue Nov 30 23:04:01 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
New generated Makefile.SH from newly updated `Jmakefile'.


Revision 46748 - Directory Listing
Modified Tue Nov 30 23:03:20 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: Fixed an issue with the size of the UU encode/decode buffer
  size as it varies depending on the platform by adding `uuencode_buffer_size'
  which computes the size needed for storing `X' pointers.


Revision 46747 - Directory Listing
Modified Tue Nov 30 23:02:21 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: Fixed an issue with the size of the UU encode/decode buffer
  size as it varies depending on the platform, and instead of recalculating
  it we had it fixed to 18 bytes. Now it is computed through the call to
  `uuencode_buffer_size'.


Revision 46746 - Directory Listing
Modified Tue Nov 30 23:00:09 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Updated content to include `run-time/include' new header directory.
Changed variable name so that they are more explicit.


Revision 46745 - Directory Listing
Modified Tue Nov 30 22:58:57 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed usage of `registerX' as this is now obsolete.
64 bits port: updated data type to avoid warnings.
Use `EIF_REFERENCE' instead of `char *' to represent an Eiffel object.
Use new `EIF_POINTER_DISPLAY' to display pointer value.


Revision 46744 - Directory Listing
Modified Tue Nov 30 22:46:13 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
New Makefile.SH automatically generated from last version of `Jmakefile'.


Revision 46743 - Directory Listing
Modified Tue Nov 30 22:45:50 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
No need for `I_STRING' anymore as we can safely use `<string.h>'.


Revision 46742 - Directory Listing
Modified Tue Nov 30 22:45:31 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
No need for `I_STRING' anymore as we can safely use `<string.h>'.
Removed test for `HAS_SOCKET' has it is not needed, we use `I_SYS_SOCKET' instead.


Revision 46741 - Directory Listing
Modified Tue Nov 30 22:43:47 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Updated to support building of mono and multithreaded version of `network.o'.


Revision 46740 - Directory Listing
Modified Tue Nov 30 22:42:23 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
New generated Makefile.SH from newly updated `Jmakefile'.


Revision 46739 - Directory Listing
Modified Tue Nov 30 22:41:23 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings


Revision 46738 - Directory Listing
Modified Tue Nov 30 22:40:59 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Updated so that we can generate a Makefile.SH that nows how to generate a
  multithreaded version of `libidr.a'.


Revision 46737 - Directory Listing
Modified Tue Nov 30 22:40:02 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug where for writing we use LNGSIZE but not for retrieving (we were
using PTRSIZE instead), as a consequence it does not work properly on platforms
where PTRSIZE which is different from LNGSIZE (e.g. windows).


Revision 46736 - Directory Listing
Modified Tue Nov 30 22:38:32 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
No need for `I_STRING' anymore as we can safely use `<string.h>'.


Revision 46735 - Directory Listing
Modified Tue Nov 30 22:37:49 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port: updated data type to avoid warnings.


Revision 46734 - Directory Listing
Modified Tue Nov 30 22:35:38 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
No need for `I_STRING' anymore as we can safely use `<string.h>'.
Removed useless `rcsid' data.


Revision 46733 - Directory Listing
Modified Tue Nov 30 22:34:49 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
New generated Makefile.SH from newly updated `Jmakefile'.


Revision 46732 - Directory Listing
Modified Tue Nov 30 22:33:17 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Renamed `padding' and `remainder' into `eif_padding' and `eif_remainder'
because `gcc' complained that `remained' was already a built-in feature
and we do not want to conflict with it.


Revision 46731 - Directory Listing
Modified Tue Nov 30 22:32:10 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added inclusion in `compiler.lib' of `minilzo' module.


Revision 46730 - Directory Listing
Modified Tue Nov 30 22:31:25 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Moved from C/minilzo in C/bench as it is only used in relation with the
  Compiler. In the process we slightly modified `minilzo.c' for support
  on 64 bits windows (where unfortunately size of `long' is not size of `pointer').


Revision 46729 - Directory Listing
Modified Tue Nov 30 22:29:19 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Now we generate `Makefile.SH' through `jmake' and `Jmakefile' configuration file
as it was done before for other run-time directories.


Revision 46728 - Directory Listing
Modified Tue Nov 30 22:28:20 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
New header file for `Jmakefile' files which includes some functions which
are basically modified versions of what `jmake' provides but tailored to the need
of the run-time.


Revision 46727 - Directory Listing
Modified Tue Nov 30 22:26:39 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
New configuration file for `linux-x86' formerly `linux-glibc2.1'.


Revision 46726 - Directory Listing
Modified Tue Nov 30 22:26:19 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed as it is now replaced with `linux-x86'.


Revision 46725 - Directory Listing
Modified Tue Nov 30 22:25:20 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Use new format for `config.sh' as generated per `Configure' script.


Revision 46724 - Directory Listing
Modified Tue Nov 30 22:24:51 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
New windows configuration files (they used to be called `config.Xsh' in the parent
  directory). They now look more like their Unix counterpart, but it is slightly
  different at their beginning as it contains explicit configuration for Windows
  `makefile-win.sh'.


Revision 46723 - Directory Listing
Modified Tue Nov 30 22:22:42 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed special configuration file for Windows. They are now in the CONFIGS directory.
Removed the `config.w32' because it is now automatically generated from the `eif_config_h.SH'
  file using  bash like we do on Unix.


Revision 46722 - Directory Listing
Modified Tue Nov 30 22:21:38 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added copyright information.
Removed what we did not use and added stuff required on either Windows or Unix so
  that we can use the same `eif_config_h.SH' template.


Revision 46721 - Directory Listing
Modified Tue Nov 30 22:20:01 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added Copyritght information.


Revision 46720 - Directory Listing
Modified Tue Nov 30 22:19:28 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
64 bits port:
Added definition of new Eiffel runtime types: rt_int_ptr and rt_uint_ptr
which are integer types whose size matches size of a pointer on a given platform.


Revision 46719 - Directory Listing
Modified Tue Nov 30 22:17:36 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Updated with more up-to-date platform names.


Revision 46718 - Directory Listing
Modified Tue Nov 30 22:16:40 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Regenerated from `jmake' using the new Jmakefile.


Revision 46717 - Directory Listing
Modified Tue Nov 30 22:16:19 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added new `runtime.H' include file for `jmake'.
Updated to new layout of runtime files.


Revision 46716 - Directory Listing
Modified Tue Nov 30 22:15:35 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added support for compiling on 64 bits version of Windows.
Now use `bash' to generate `eif_size.h' and `eif_config.h' from configuration file
  located in CONFIGS directory. So that no code duplication is needed for Unix
  and Windows.


Revision 46715 - Directory Listing
Modified Tue Nov 30 22:13:55 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed since we only need MANIFEST.new


Revision 46714 - Directory Listing
Modified Tue Nov 30 22:13:34 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Updated with addition of `bench' cluster.


Revision 46713 - Directory Listing
Modified Tue Nov 30 22:12:58 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed certain useless checking.
Changed format of generated `config.sh' file so that it only contains what
interest us for compiling the run-time and our generated Makefiles.


Revision 46695 - Directory Listing
Modified Mon Nov 29 22:47:01 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
New Makefile generated with latest version of metaconfig.


Revision 46694 - Directory Listing
Modified Mon Nov 29 21:25:57 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed warnings in format display.


Revision 46693 - Directory Listing
Modified Mon Nov 29 21:22:13 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed warnings in format display.
Removed warnings due to 64 bits port.


Revision 46685 - Directory Listing
Modified Mon Nov 29 18:46:36 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed since we do not need special rules for Lex since we do not use lex anymore.


Revision 46682 - Directory Listing
Modified Mon Nov 29 17:07:41 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed the `make link' part as it was unecessary recreating `eif_config.h'
after run-time was compiled and therefore forcing a recompilation of the run-time.


Revision 46673 - Directory Listing
Modified Thu Nov 25 01:21:16 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Updated with new file hierarchy.


Revision 46672 - Directory Listing
Modified Thu Nov 25 01:20:48 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed dummy_sumbols.c since not used.


Revision 46669 - Directory Listing
Modified Thu Nov 25 00:50:00 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Updated content to new version of compiler.


Revision 46648 - Directory Listing
Modified Wed Nov 24 17:02:41 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Updated signature of `dsetbreak' to match new implementation.


Revision 46627 - Directory Listing
Modified Tue Nov 23 22:34:51 2004 UTC (15 years, 1 month ago) by jfiat
Original Path: trunk/Src/bench/C
removed commented lines
add comments


Revision 46623 - Directory Listing
Modified Tue Nov 23 22:15:53 2004 UTC (15 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed definition of `lzo_ptr_t' on Windows 64 bits platform.


Revision 46621 - Directory Listing
Modified Tue Nov 23 22:10:33 2004 UTC (15 years, 1 month ago) by jfiat
Original Path: trunk/Src/bench/C
fixed issue regarding real callstack depth for step_by_step operation
when the stack level is greater than the number of stack to display


Revision 46603 - Directory Listing
Modified Sat Nov 20 03:16:55 2004 UTC (15 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Removed ambiguous else.
Removed useless `memcpy' instruction since it does nothing.


Revision 46540 - Directory Listing
Modified Thu Nov 18 00:26:11 2004 UTC (15 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
In `trapsig' fixed issue where we called `signal' on SIGNALs that don't exist
on a given platform because we forgot to test against `esigdefined'. This
was causing a crash with the new Microsoft CRT which raises an exception
when you call CRT routines with wrong arguments.


Revision 46523 - Directory Listing
Modified Tue Nov 16 20:05:42 2004 UTC (15 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
New size file for Windows 64bits.


Revision 46471 - Directory Listing
Modified Sun Nov 14 23:34:16 2004 UTC (15 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Removed DEBUGTYPE:BOTH flags since it is currently obsolete and not working
 in VS 8.0


Revision 46464 - Directory Listing
Modified Fri Nov 12 08:10:33 2004 UTC (15 years, 2 months ago) by alexk
Original Path: trunk/Src/bench/C
Moved variable declaration to #ifdef directive to avoid "unused variable" warning.


Revision 46444 - Directory Listing
Modified Thu Nov 11 23:16:00 2004 UTC (15 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed an issue when trying to call multiple time `reclaim' in a program. If this
  is the case only the first call should do something, all the following ones
  should not have an effect as if we are calling again it means that the
  previous call to `reclaim' failed and executing it again make no sense.


Revision 46439 - Directory Listing
Modified Thu Nov 11 19:35:03 2004 UTC (15 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Make sure that -O3 was the optimize level.
Added more options to the warning_level so that we can better clean the C code.


Revision 46423 - Directory Listing
Modified Wed Nov 10 20:41:18 2004 UTC (15 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a bug when compiler writes melted file. It was writing a 64 bits integer
on 64 bits platform where the interpreter only reads a 32 bits integer. Fixing
this solves about 240 tests in eweasel where melted files are used.


Revision 46398 - Directory Listing
Modified Wed Nov 10 00:45:33 2004 UTC (15 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
New configuration file for Linux on x86-64.


Revision 46365 - Directory Listing
Modified Tue Nov 9 03:10:28 2004 UTC (15 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Removed files that have been either removed or renamed or moved.


Revision 46364 - Directory Listing
Modified Mon Nov 8 23:31:18 2004 UTC (15 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed an issue where EIF_COND_WAIT_WITH_TIMEOUT did not work properly on PTHREAD
  platforms because we did not get the precise current time (only the number
  of seconds and not the nanoseconds). Therefore if we only specified
  milliseconds, then it is most likely that the actual time was already passed.
  For example for a timeout of 300 ms and a of time is `1s500ms', we were
  setting the absolute timeout time to `1s300ms' and thus we were already timeout.
  Now we compute `1s800ms' which fixes the bug.


Revision 46270 - Directory Listing
Modified Tue Nov 2 17:41:00 2004 UTC (15 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
We go for the next release 5.6 for finding Borland.


Revision 46259 - Directory Listing
Modified Tue Nov 2 11:44:39 2004 UTC (15 years, 2 months ago) by alexk
Original Path: trunk/Src/bench/C
Changed suffix for INTEGER_64 constants to i64 so that by MSVC and BCC
interpret them correctly.


Revision 46215 - Directory Listing
Modified Thu Oct 28 16:38:50 2004 UTC (15 years, 2 months ago) by isewww
Original Path: trunk/Src/bench/C
New -03 optimization for FreeBSD in finalized mode. For -O0 for workbench mode.


Revision 46197 - Directory Listing
Modified Wed Oct 27 14:24:18 2004 UTC (15 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Use -O0 for workbench mode.


Revision 46184 - Directory Listing
Modified Tue Oct 26 22:45:49 2004 UTC (15 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Never catch SIGPROF if it is defined so that Eiffel applications can be profiled on UNIX.


Revision 46159 - Directory Listing
Modified Mon Oct 25 21:02:34 2004 UTC (15 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
On SGI rindex is defined in strings.h.


Revision 45851 - Directory Listing
Modified Mon Sep 27 11:54:51 2004 UTC (15 years, 3 months ago) by alexk
Original Path: trunk/Src/bench/C
Supplied compile-time hash code for once manifest strings.


Revision 45832 - Directory Listing
Modified Fri Sep 24 18:20:20 2004 UTC (15 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed warning because we were not using the floating point constants syntax for
1 and 0.


Revision 45803 - Directory Listing
Modified Fri Sep 24 00:40:20 2004 UTC (15 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Now once manifest strings are allocated using `makestr_with_hash_as_old'
which in returns allocated the Eiffel memory using `emalloc_as_old'.
With this, the GC does not need to track those strings at each small
collection as we know they are going to be alive for the all life of
the system.


Revision 45802 - Directory Listing
Modified Fri Sep 24 00:38:52 2004 UTC (15 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
New routine `emalloc_as_old' to allocate a normal object as an old object.
This is useful for once manifest strings so that the GC does not need to
track those objects at each small collection as we know they are going to
be alive for the all life of the system.


Revision 45801 - Directory Listing
Modified Fri Sep 24 00:37:25 2004 UTC (15 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Now once manifest strings are allocated as old object. As a consequence
we do not need to mark the `oms_set' all the time, just when we do a
`full_mark'. Doing so reduce the pool of objects to traverse at each
small collection in `mark_new_generation' and thus speed up overall GC speed.


Revision 45744 - Directory Listing
Modified Sat Sep 18 00:32:00 2004 UTC (15 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed store002 where an infinite loop could occur when there is actually
  no error when reading a file, it is just that there is nothing more to read.
  Like in `retrieve.c' when we retrieve `0' bytes we raise an IO error.


Revision 45743 - Directory Listing
Modified Sat Sep 18 00:30:54 2004 UTC (15 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Cosmetics: put {} around single line compound for `if' statements.


Revision 45719 - Directory Listing
Modified Fri Sep 17 14:20:50 2004 UTC (15 years, 4 months ago) by alexk
Original Path: trunk/Src/bench/C
Optimized code for once manifest strings in single-threaded finalized mode.


Revision 45624 - Directory Listing
Modified Tue Sep 14 18:12:18 2004 UTC (15 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed eweasel bug `exec186' when if the `a' arguments of the RTOVP and RTOVF
macros was a function call, then `a' will not be evaluated if the once was
already computed. Now we force its computation in this case. It may slow down
a little bit the existing performance, but it is better to have correctness.


Revision 45623 - Directory Listing
Modified Tue Sep 14 16:26:18 2004 UTC (15 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Removed need for defining EIFFEL_SRC environment variable.


Revision 45622 - Directory Listing
Modified Tue Sep 14 16:19:46 2004 UTC (15 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Removed use of EIFFEL_SRC so that EIFFEL_SRC need not to be defined.


Revision 45588 - Directory Listing
Modified Mon Sep 13 22:30:34 2004 UTC (15 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
New helpers routine to compute `three_way_comparison' on basic types.


Revision 45587 - Directory Listing
Modified Mon Sep 13 22:23:47 2004 UTC (15 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Cosmetics.


Revision 45586 - Directory Listing
Modified Mon Sep 13 22:22:38 2004 UTC (15 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added support for new BC_BASIC_OPERATIONS: three_way_comparison.


Revision 45585 - Directory Listing
Modified Mon Sep 13 22:22:14 2004 UTC (15 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added new byte code operation for performing `three_way_comparison' on basic
types in melted mode.


Revision 45581 - Directory Listing
Modified Mon Sep 13 14:15:06 2004 UTC (15 years, 4 months ago) by alexk
Original Path: trunk/Src/bench/C
Supported once manifest strings.


Revision 45580 - Directory Listing
Modified Mon Sep 13 14:14:45 2004 UTC (15 years, 4 months ago) by alexk
Original Path: trunk/Src/bench/C
Supported once manifest strings.
Corrected analyze_cecil routine to read tables properly.


Revision 45574 - Directory Listing
Modified Mon Sep 13 05:30:28 2004 UTC (15 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in object id management which conflicts with recent introduction
  of stack overflow protection while doing a GC cycle. Because we were calling
  `updated_object_id_stack' before `mark_overflow_stack', then if `mark_overflow_stack'
  was continuing the marking because the overflow stack was not empty
  then objects under the control of object_id will not be updated which could
  cause a crash since after than `eif_id_object' may return the old location
  of an object and not the new one.


Revision 45573 - Directory Listing
Modified Mon Sep 13 05:25:27 2004 UTC (15 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added `stdarg.h' include when EIF_ASSERTIONS is defined so that we can define
  the varargs variables used in `ise_printf'.


Revision 45490 - Directory Listing
Modified Fri Sep 3 22:07:44 2004 UTC (15 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Prevent stepping into `dispose' routines at the very end of the execution
  of a program.


Revision 44949 - Directory Listing
Modified Thu Aug 19 20:55:42 2004 UTC (15 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Removed inclusion of malloc since it seems obsolete now.


Revision 44908 - Directory Listing
Modified Thu Aug 19 01:28:40 2004 UTC (15 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug where in BC_OLD we were incorrectly checking if the type of the old
  expression was an expanded or not. It fixes eweasel bug melt071.


Revision 44903 - Directory Listing
Modified Thu Aug 19 00:41:13 2004 UTC (15 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect way to check if we are handling an expanded type or not.


Revision 44855 - Directory Listing
Modified Wed Aug 18 16:01:28 2004 UTC (15 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed eweasel entry `exec185' where copy of expanded containing expanded
is not properly handled by `expanded_update' call in `eif_std_ref_copy'.
Instead we are now doing a copy field by field in case of expanded, this
removes the need to update the expanded intra-references done by `expanded_update'
which seems to be broken and I did not want to touch this routine yet.


Revision 44851 - Directory Listing
Modified Wed Aug 18 15:42:36 2004 UTC (15 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
When storing a special of expanded, each expanded item should have the EO_EXP
 flag too (before only the full dynamic type id was stored and this was not
 enough as it was violating some assertions in the retrieving code).


Revision 44849 - Directory Listing
Modified Wed Aug 18 15:15:50 2004 UTC (15 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a bug found by Alexander where in finalized mode we were trying to
free the content of `rt_globals' as if it was a run-time stack which it isn't
thus it was overriding some internal data of `rt_globals' that was used later.
(only found now, because we are using `eif_globals' to access on windows
wel_thread_data). The fix is to split `remove_stack_from_gc' into
`remove_data_from_gc' and then performs the free of the stack when it is really
a stack.


Revision 44845 - Directory Listing
Modified Wed Aug 18 02:03:15 2004 UTC (15 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect precondition in `object_rread_attributes' as we were checking
  the incorrect flag to find if retrieved object is expanded or not.


Revision 44726 - Directory Listing
Modified Fri Aug 13 22:10:58 2004 UTC (15 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed issue where debugger would crash when stepping in `make' of TEST. This
  is due to the fact that the flags meaning of EO_REF and EO_COMP have changed
  for special of expanded. EO_REF only means if it has references or not, EO_COMP
  means it has expanded.
class TEST create make feature
	make is do create x.make (1, 10) end
	x: ARRAY [TEST2]
end
expanded class TEST2 convert to_any: {ANY}
feature
	x, y, z: TEST3
	to_any: TEST2_REF is do create Result end
end
expanded class TEST3 feature a, b, c, d, e: DOUBLE end


Revision 44722 - Directory Listing
Modified Fri Aug 13 21:43:50 2004 UTC (15 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Removed C compiler warning.


Revision 44692 - Directory Listing
Modified Fri Aug 13 05:38:27 2004 UTC (15 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Switched to 5.6 release registry key lookup.


Revision 44336 - Directory Listing
Modified Fri Jul 16 06:27:50 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Exported definition of `eif_thread_fork'.


Revision 44319 - Directory Listing
Modified Thu Jul 15 22:14:52 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Merged from Eiffel_51:
Add `volatile' qualifier to ensure that code is not optimized away by C
  compiler.
Fixed warning of C compiler about non-used local


Revision 44317 - Directory Listing
Modified Thu Jul 15 21:30:19 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Implemented EIF_THR_YIELD for POSIX thread using `sched_yield' when present
  or `usleep' otherwise.


Revision 44252 - Directory Listing
Modified Wed Jul 14 21:58:13 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Doesn't look like INT64_C is defined on older version of Linux without special
  include file


Revision 44004 - Directory Listing
Modified Tue Jun 29 18:12:43 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Implemented `eif_integer_64_constant' for our main platforms.


Revision 44003 - Directory Listing
Modified Tue Jun 29 18:11:38 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `s' to `eif_integer_64_constants' since it is made to define one
  integer 64 constant.


Revision 44002 - Directory Listing
Modified Tue Jun 29 17:11:39 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Removed old platforms configuration files since we do not target those platforms
 anymore.


Revision 44001 - Directory Listing
Modified Tue Jun 29 17:05:12 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added macro to define Integer 64 constants as some platforms requires the LL
suffix, some do not support it.


Revision 44000 - Directory Listing
Modified Tue Jun 29 16:26:44 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Simplified windows configuration of the runtime by having only one file.
Removed support for watcam and symantec C compilers.
Reflected these changes in `Configure.bat'.


Revision 43999 - Directory Listing
Modified Tue Jun 29 16:05:30 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Use 5.5 delivery for finding Borland C compiler.


Revision 43974 - Directory Listing
Modified Fri Jun 25 17:55:04 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed two set of bugs:
1 - we were not properly allocating `dtypes' and `spec_elm_size' because
    if you retrieve a storable in a bigger system, then the array is allocated
	with the size of the storing system and thus we might do out-of-bound
	access (this was a bug discovered at AxaRosenberg)
2 - with recoverable storable we were insufficiently protecting EIF_REFERENCE
    against call to the GC thus we could potentially fail while fixing
	a storable.
Cosmetics.


Revision 43966 - Directory Listing
Modified Thu Jun 24 21:51:18 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect declaration for `has_object'


Revision 43808 - Directory Listing
Modified Tue Jun 15 16:39:22 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in storing special of expanded which have no references in
  final mode. Since they have no header we need to take this into account.
  As a consequence all the routines storing data of such an object takes
  an extra argument corresponding to the flags of the object (before these
  flags were retrieved directly from the object).
  It affects the following routine: object_write, gen_object_write, st_write,
  gst_write and ist_write.

Note that to retrieve the type of the expanded generic parameter of a special
  we use `eif_gen_param_id' since there is no header. Note again that until
  recently it was broken in the compiler and compiler has been fixed to generate
  correct information.


Revision 43807 - Directory Listing
Modified Tue Jun 15 16:33:38 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in `cecil_info' for general store because `rt_kind_version'
  was not properly set to `0' therefore always taking the INDEPENDENT_STORE_5_5
  or greater path and thus expecting a non-null `conv'. Moreover there
  was a bug in our heuristic to find out if the type we found in CECIL is
  indeed a right type in the case of generic classes.

Simplified `rt_read_cid' and `rt_id_read_cid' to take the old flags and
  return the new flags. Updated code using those routines.

Fixed bug in retrieving special of expanded which have no references in
  final mode. Since they have no header we need to take this into account.
  As a consequence all the routines retrieving data into an object takes
  an extra argument corresponding to the flags of the object (before these
  flags were retrieved directly from the passed object).
  It affects the following routine: object_rread_attributes, object_read,
  gen_object_read.

Protected code using `cidarr' of size `CIDARR_SIZE' to dynamically allocate
  memory when we go over `CIDARR_SIZE'. Note that the resizing code is not
  exerced yet because in `gen_conf.c' we can only take 256 generic parameters.


Revision 43806 - Directory Listing
Modified Tue Jun 15 15:53:01 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Changed signatures of `st_write', `ist_write' and `gst_write' to take an
  extra argument corresponding to the full flags of the object we are storing.
  This is needed because some object may have no headers (e.g. expanded without
  references stored in a special).


Revision 43805 - Directory Listing
Modified Tue Jun 15 15:51:15 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Take into account new signature of `st_write' which now takes as extra argument
  the full flags of the object we are storing. This is needed because some
  object may have no headers.


Revision 43789 - Directory Listing
Modified Mon Jun 14 18:07:11 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Made `wel_per_thread_data' a windows specific field of the public per thread
  data of the run-time.


Revision 43787 - Directory Listing
Modified Mon Jun 14 17:45:35 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in `spiso' with new optimization of special of expanded without references
  (which don't have a header) and turn it into an optimization to perform block
  comparison rather than element by element comparison.
Fixed long outstanding bug in `rdeepiso' because some code path was never taken
  but now is with the fact that we generate the `EO_REF' flag for special of
  expanded with some references in it. We forgot to return EIF_TRUE when we have
  traversed the special of expanded and did not find any non-equal element.
  This not only fixes this piece of code, but now ensures that special of
  expanded are properly compared.


Revision 43758 - Directory Listing
Modified Thu Jun 10 15:50:00 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in `sp_init' shown by eweasel test store006 because we were
  calling `cp' which is NULL instead of `init' which should have been called
  to initialize the elements of the special of expanded.


Revision 43660 - Directory Listing
Modified Tue Jun 8 19:20:04 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Added a WEL per thread data entry in `eif_global_context_t' structure so that
  WEL per thread data can be properly initialized and destructed. Before we
  had no way to do that and it would possibly crash WEL multithreaded application.
  See commits for version 1.6 of `wel_thr_init.c' from WEL.
Added creation and destruction of `eif_cecil_mutex' and `eif_gen_mutex' which
  were previously done if `cecil.c' and `gen_conf.c'. This is better to let
  `eif_threads.c' know about all the global mutexes in the run-time.
Added `eif_free_context' to free possible allocated memory from the private
  and public per thread data.


Revision 43659 - Directory Listing
Modified Tue Jun 8 19:18:01 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Moved creation and destruction of `eif_gen_mutex' to `eif_threads.c' to have
  a centralized place which control all global mutexes.


Revision 43658 - Directory Listing
Modified Tue Jun 8 19:16:23 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Added a WEL per thread data entry in `eif_global_context_t' structure so that
  WEL per thread data can be properly initialized and destructed. Before we
  had no way to do that and it would possibly crash WEL multithreaded application.
  See commits for version 1.6 of `wel_thr_init.c' from WEL.


Revision 43657 - Directory Listing
Modified Tue Jun 8 19:14:23 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Renamed `cecil_lock' into `eif_cecil_mutex' and made it shared among runtime modules.
Moved creation and destruction of the above mutex in `eif_thread.c' with
  other global mutex creation and destruction.


Revision 43588 - Directory Listing
Modified Mon Jun 7 02:43:56 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Made `object_id' thread safe by the introduction of a new mutex. Removed
  useless code.


Revision 43587 - Directory Listing
Modified Mon Jun 7 02:43:25 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in new implementation of `eif_typename' for non-generic type in
  multithreaded mode, because when `eif_gen_conf_thread_init' is called from
  `eif_thr_register', `first_gen_id' has not yet been computed and its value
  is still 0.


Revision 43586 - Directory Listing
Modified Mon Jun 7 02:39:26 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Added `object_id' mutex protection.
Fixed a bug in `eif_thr_create_with_args' where after EIF_EXIT_C we should
  call RTGC to ensure that no GC collection is happening before continuing
  our execution (Found by creating threads whose first thing was to
  performe GC collection, then the thread who created them would change
  `loc_set' thus corrupting the collecting thread)


Revision 43583 - Directory Listing
Modified Sun Jun 6 06:39:22 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Now non-commercial runtime is compiled as part of a normal compilation, thus
  the updated comment.


Revision 43582 - Directory Listing
Modified Sun Jun 6 06:29:31 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Simplified `link_line' by having one version for all types of library.
Added building of free commercial within normal build to reduce building
  time of run-time.


Revision 43440 - Directory Listing
Modified Thu Jun 3 00:48:40 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed storable bug because we forgot to remove at version 2.78 another piece
  of code that was using the `expanded' or `reference' addition before looking
  up the type in the CECIL table. Now this is not needed anymore, thus when
  you had an expanded type defined from a reference class, or a reference type
  defined from an expanded class then the stored information would be incorrect
  and thus the retrieval would fail.
  It fixes eweasel bug store006.


Revision 43392 - Directory Listing
Modified Tue Jun 1 18:25:55 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `eif_gen_count' and only kept `eif_gen_count_with_dftype'. Fixed
  `eif_gen_count_with_dftype' to work with all generic types, not just TUPLE.
  (it was using tuple_static_type and I'm not sure we should be using this
  variable at all in `gen_conf.c', but in the meantime I left the code as
  it is in order to not break things).


Revision 43377 - Directory Listing
Modified Sun May 30 07:21:16 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Removed C compiler warning by adding initialization.


Revision 43376 - Directory Listing
Modified Sat May 29 23:10:33 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Updated `sprealloc' so that the expanded type is now computed differently
  using `eif_gen_param_id' as expanded type may have no object header in
  a special of expanded if the expanded has no references.
Optimized `sp_init' to perfom the minimum of initialization to improve
  performance of special of expanded initialization (we gain about 30%
  on a special of COMPLEX which has no creation procedure and no references)


Revision 43375 - Directory Listing
Modified Sat May 29 23:08:01 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Added comment to explain why it works fine for expanded on the stack which
  have the EO_EXP flag set but they have a size of `0'.


Revision 43374 - Directory Listing
Modified Sat May 29 23:07:15 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Updated to new way to get full dynamic type of an expanded in a special of
  expanded. This is required because of the optimization which might
  remove the object header if expanded has no references. We use `eif_gen_param_id'
  instead to get the same information.


Revision 43373 - Directory Listing
Modified Sat May 29 23:05:37 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
New macro `RTLXI' which only calls creation procedure of an expanded type
  if any.


Revision 43372 - Directory Listing
Modified Sat May 29 23:04:38 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed declaration of `cr_exp'. Added export of `init_exp'.


Revision 43371 - Directory Listing
Modified Sat May 29 23:04:06 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
New way to get type of expanded elements of a special of expanded by
  calling `eif_gen_param_id' as now in finalized mode we may not have
  an object header for expanded and thus the information is not stored
  in the special.
Added optimization so that if the expanded type has no references (i.e
  no object header), then no need to reupdate the offset to top.


Revision 43370 - Directory Listing
Modified Sat May 29 22:59:13 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Revisited `cr_exp' and `init_exp' to make them consistent and to reduce code
  duplication.


Revision 43351 - Directory Listing
Modified Sat May 29 04:37:09 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed C compiler warning.


Revision 43345 - Directory Listing
Modified Sat May 29 01:29:41 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Updated to new signature of `eif_gen_param_id' which now takes a full dynamic
  type rather than an object.


Revision 43344 - Directory Listing
Modified Sat May 29 01:25:57 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Made `eif_gen_param' and `eif_gen_param_id' take a full dynamic type rather
  than an object to optmize things a bit and allow objectless query of the type
  system.


Revision 43290 - Directory Listing
Modified Thu May 27 01:30:32 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug where passing `get_short()' to RTUD was a bad idea in creating
  a SPECIAL of expanded because RTUD evaluates twice its argument, therefore
  the IC value was incorrect.


Revision 43193 - Directory Listing
Modified Mon May 24 17:01:00 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Merged from Eiffel_54:
Fixed potential deadlock in `eif_thr_exit' when a parent thread exit before
its children, if one of the children is locked doing a GC collection, then
because the parent is exiting and is waiting for the children to be unlocked,
then the GC will indifinitely wait for the parent thread, now we mark this
section of code out of the GC, so that the GC can resume and then the parent
thread can freely exit.


Revision 43191 - Directory Listing
Modified Mon May 24 16:53:29 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Integrated `eif_thread_fork' from Eiffel_54 branch (needed for EMC on Linux)


Revision 43174 - Directory Listing
Modified Sat May 22 04:45:36 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed gcc warnings.


Revision 43146 - Directory Listing
Modified Fri May 21 23:02:34 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Enabled creation of SPECIAL directly, instead of indirectly through TO_SPECIAL.
For that we have a new routine `special_creation' to which you enough information
  so that the runtime can properly call `spmalloc' and initializes the special
  headers and footers (nb element, element size). This routine is in charge
  of initializing each elements of a special of expanded. If it is a special
  of BIT X, then it is up to the generated code to generate the initialization
  or the interpreted code (see BC_SPCREATE).


Revision 43134 - Directory Listing
Modified Thu May 20 18:28:11 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Use `unsigned int' instead of `long int' or `EIF_INTEGER' for size related
  variables in `sprealloc'.


Revision 43119 - Directory Listing
Modified Wed May 19 22:51:01 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Made sur to use -O0 for workbench optimization other C compilation is very long.


Revision 43118 - Directory Listing
Modified Wed May 19 22:50:34 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Used non-used local variable `dynamic_types' in `widr_type_generics'.


Revision 43117 - Directory Listing
Modified Wed May 19 22:49:09 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect forword definition of `struct type_array_element'.


Revision 43091 - Directory Listing
Modified Tue May 18 18:27:18 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Protected some calls by checking whether a directory or a file already exists or not.


Revision 43089 - Directory Listing
Modified Tue May 18 16:26:21 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Changed return type of `dir_search' to be a EIF_POINTER which makes more sense
  since we do not return a string.


Revision 43052 - Directory Listing
Modified Sat May 15 00:48:58 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
New default chunk size since less chunks means less bookkeeping work for the
 GC.


Revision 43015 - Directory Listing
Modified Thu May 13 19:38:40 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug where `is_expanded' and `is_reference' of `type_array' where not
properly initialized causing `eif_type_id' to fail when looking up a non-generic
class.


Revision 42963 - Directory Listing
Modified Wed May 12 00:31:03 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Updated to take into account the fact that the type names in the CECIL tables
are not prefixed with `expanded' or `reference' anymore.
Moreover we fix an issue if `expanded' or `reference' is not immediately
followed by a space and the type name it would not work, now it does.


Revision 42962 - Directory Listing
Modified Tue May 11 23:55:54 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
In recoverable storable, we do not prefix type name with `expanded' or
`reference' prefix because we have this information as part of the flags
stored with a type.


Revision 42961 - Directory Listing
Modified Tue May 11 23:33:13 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `eifexp', `eifcid' and `eif_expand' since they are not used.


Revision 42960 - Directory Listing
Modified Tue May 11 23:31:49 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Removed non-used `eifcid' and `eifexp' routine.


Revision 42910 - Directory Listing
Modified Fri Apr 30 23:59:20 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Changed structure `cecil_info' so that it is more compact for non-generic
type. By doing this compaction we went from 200K more to only 50K more compare
to 5.4 for the size of the cecil tables.


Revision 42906 - Directory Listing
Modified Fri Apr 30 21:57:59 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Factorized code using CECIL tables to use `cecil_info_for_dynamic_type' which
  will properly lookup for the type in the CECIL tables and which will handle
  the expanded/reference cases. This abstraction was needed since now we
  need to prepend `expanded' or `reference' to the class name in order to find
  them in the CECIL tables.


Revision 42894 - Directory Listing
Modified Fri Apr 30 01:45:43 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Made sure that `eif_id_for_typearr' exists in final mode too.


Revision 42893 - Directory Listing
Modified Fri Apr 30 01:45:07 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Our previous change broke something in multithreaded compilation as we are now
  using `rt_kind_version' outside assertions in `object_rread_tuple'.


Revision 42891 - Directory Listing
Modified Thu Apr 29 22:29:09 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Took into account changes in CECIL regarding class lookup and the fact
  that now we return different information in `cecil_info'.
Added ability to get dynamic type of expanded classes not declared as
  expanded, same for reference. That is to say now: "LIST [expanded A]"
  will be found if in system.
Renamed `gt_info' into `cecil_info'. Renamed members of `gt_info' as well
  to have better names.


Revision 42890 - Directory Listing
Modified Thu Apr 29 22:24:58 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `eif_find_true_type' because it was the same as `eif_id_for_typarr'.
  Note that `eif_find_true_type' had some multithreaded protection that were
  useless since the `rtud_inv' array is not resized during execution.


Revision 42883 - Directory Listing
Modified Thu Apr 29 20:12:13 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Renamed `gt_info' into `cecil_info'. Renamed members of `gt_info' as well
  to have better names.
Rewrote `widr_type_generics'. This should be done for all routine iterating
  through `dynamic_types' field of `cecil_info'.
Changed the way we store class name, if we store the expanded version of a
  non expanded class, we prefix `expanded'; reciprocally we previx `reference'
  when handling with the reference version of an expanded class.
Added `flags' to storable format for each type in the storable header. Those
  flags are the one stored in the `cnode' structure for a given type.


Revision 42882 - Directory Listing
Modified Thu Apr 29 20:07:31 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Changed version of Storable 5.5. The previous 0x0D is not retrievable as it was
  broken.


Revision 42881 - Directory Listing
Modified Thu Apr 29 20:06:05 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Added new `flags' to `type_conversion'


Revision 42880 - Directory Listing
Modified Thu Apr 29 20:05:47 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Take into account the new way of generating cecil melted tables.


Revision 42879 - Directory Listing
Modified Thu Apr 29 20:05:04 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Renamed `gt_info' into `cecil_info'. Renamed members of `gt_info' as well
  to have better names.
Protected `free_mismatch_table' to not free tha table if it has not yet been
  allocated. This could fail in scenarios where retrieval fails even before
  we allocate the mismatch_table.
Factorized away in `cecil_info' the query to the CECIL tables, this is needed
  to adapt to the change made to CECIL where instead of generating 2 tables
  for generic and non-generic classes, we now generate 2 tables for non-expanded
  and expanded classes.
Updated to the fact that we do not use `SK_DTYPE' in CECIL. Made sure that
  SK_DTYPE are converted to SK_REF for old storables format.
Revisited `map_generics' as it was incorrect before because the SK_ values
  are not flags but precise values.
Taken into account the fact that we now store a 32 bits flags for each type
  that tell us if the type is expanded or not.
Splitted content of `object_rread_tuple' to clearly see the difference between
  old and new storables.


Revision 42878 - Directory Listing
Modified Thu Apr 29 19:57:53 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed an issue with computation of the full dynamic type for expanded types
  in composite objects. If you have a composite object `A' which has a generic
  expanded type `B [G]', which also has a generic expanded type `C [G]' then we were
  not using the proper dynamic type to compute the type of `C', we were still
  using `A' where we should have been using `B' instead.
  This was noticed when changing the way we generate typearr for such scenarios
  as we were only remembering that there was some formal included and evaluating
  G in `A' made no sense, since there was no generics.


Revision 42877 - Directory Listing
Modified Thu Apr 29 19:46:22 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Renamed `gt_info' into `cecil_info'. Renamed members of `gt_info' as well
  to have better names.


Revision 42876 - Directory Listing
Modified Thu Apr 29 19:45:05 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Updated to new code generation for cecil tables. Instead of generating 2 tables
  for generic and non-generic classes, we now generate 2 tables for non-expanded
  and expanded classes.


Revision 42875 - Directory Listing
Modified Thu Apr 29 19:43:37 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Updated `eifcid' to match our new code generation for cecil tables. Indeed
  now when looking for a type, we need to look for it in the non-expanded and
  expanded tables. If found then we check that it is not a generic type.


Revision 42859 - Directory Listing
Modified Thu Apr 29 18:23:44 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Removed useless computation of `is_expanded' as just after we return without
using this value.


Revision 42795 - Directory Listing
Modified Thu Apr 22 21:44:25 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a bug in `eif_id_of' when computing full dynamic type of a BIT type, we
  were incorrectly setting `outtab' with the non generic id, rather than with
  the new computed id. As a result we were always doing some testing against
  `egc_bit_dtype' where in fact we did not need to, as it is automatically
  taken care of when `dftype' is greater than `first_gen_id' using the
  EIF_GEN_DER structure.
  It fixes eweasel test `store005'.


Revision 42792 - Directory Listing
Modified Thu Apr 22 04:09:40 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in recent modification of `eif_typename' as for a non-generic type
  we forgot to take into account the null character when doing the allocation,
  that is to say to allocate the memory we need to add `+ 1'. Otherwise we
  are corrupting the memory.


Revision 42693 - Directory Listing
Modified Mon Apr 12 22:43:09 2004 UTC (15 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Made sure that on all platforms `stderr' is unbuffered. On unix it is by default,
  but not on Windows. Fixed bug report #3712.


Revision 42623 - Directory Listing
Modified Fri Apr 9 02:44:49 2004 UTC (15 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Adapted to new change in the compiler to accept assignment attempt when target is a
  reference formal generic paramter. It was not working because the way we
  were getting the type of the target was incorrect.
  Fixed it by noticing that both creation and assignment attempt are using
  the same technic to get the actual type of the target. So created a new
  routine `get_creation_type' and use it in BC_CREATE and BC_xREVERSE cases.


Revision 42608 - Directory Listing
Modified Thu Apr 8 21:11:23 2004 UTC (15 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Removed specific definition of `index' and `rindex' in `eif_confmagic.h'
 as we should now use the ANSI C version `strchr' and `strrchr'.
Updated code that was still using `rindex' to use `strrchr'.


Revision 42593 - Directory Listing
Modified Wed Apr 7 23:29:42 2004 UTC (15 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a crash in `dump_stack' when no exception has been raised yet because
  in this situation `eif_trace.st_hd' has not yet been set, therefore we
  cannot access the members of `eif_trace.st_hd'. This is usually set when
  raising an exception.


Revision 42507 - Directory Listing
Modified Wed Mar 31 06:41:52 2004 UTC (15 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Added -O0 for workbench mode to speed up C compilation.


Revision 42424 - Directory Listing
Modified Fri Mar 26 06:51:22 2004 UTC (15 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed error when compiling with EIF_ASSERTIONS.


Revision 42297 - Directory Listing
Modified Tue Mar 23 22:43:09 2004 UTC (15 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Added `eif_pointer_identity' needed for fixing a bug in VC6++ which prevents
  C compilation in final mode.


Revision 42276 - Directory Listing
Modified Tue Mar 23 17:13:56 2004 UTC (15 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Now it is guaranteed that in final mode the `egc_edispose' array exists.


Revision 42144 - Directory Listing
Modified Tue Mar 16 21:43:08 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Make sure that if ETIME is not defined we define it to be the same as ETIMEDOUT
(e.g. it is needed on the Mac).


Revision 42143 - Directory Listing
Modified Tue Mar 16 21:37:54 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Used proper ANSI C declaration of `set_windows_exception'


Revision 41906 - Directory Listing
Modified Sun Mar 7 01:05:09 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed warning by C compiler about ambiguous else statement by adding braces
where appropriate.


Revision 41905 - Directory Listing
Modified Sun Mar 7 01:04:41 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed warnings by C compiler about possible usage of uninitialized variable.


Revision 41904 - Directory Listing
Modified Sun Mar 7 00:58:33 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed warnings about nested comments for VMS code.


Revision 41887 - Directory Listing
Modified Sat Mar 6 06:46:05 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
New encoding for generic conformance:
 1 - Got rid of tuple uniformizer
 2 - Got rid of special constants for basic types, we now use their corresponding
     dynamic type, so no need for the `codes' and `codemap] arrays.
 3 - Removed `eif_gen_is_uniform' which was not used.
 4 - Because for `eif_typename' we need to prepend `expanded' or `reference'
     time to time, we store the allocated memory for those in new array
	 `non_generic_type_names' which is a per thread data.
 5 - Got rid of special encoding for expanded type, now we put the dynamic type
     of the expanded since they have now their own dynamic type. We use
	 `EIF_IS_EXPANDED_TYPE' to find out if a dynamic type is expanded or not.
 6 - Changed encoding for FORMAL_TYPE, now it is FORMAL_TYPE followed by the
     formal position, and not encoded throught (FORMAL_TYPE - position).

Note that we only prepend `expanded' if the class is not declared expanded
and if an instance of this type is used as expanded. The same for reference,
only if an expanded class is used as a reference type.


Revision 41886 - Directory Listing
Modified Sat Mar 6 06:37:39 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Updated `BC_VOID' to make sure that it push a new Void reference on stack.
Ensured that expanded used in `old' expression are copied, so that we don't
  keep the orginal reference which could be incorrect.
Relaxed CHECK statements for `assign' for BIT types.


Revision 41885 - Directory Listing
Modified Sat Mar 6 06:34:58 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Updated store/retrieve code for new encoding in generic type arrays.
Added code to retrieve old storables using the old encoding.


Revision 41884 - Directory Listing
Modified Sat Mar 6 06:32:32 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Updated to new naming convention for members of the `cnode' structure.
Use new `EIF_IS_COMPOSITE_TYPE' macro from `rt_struct.h'.


Revision 41883 - Directory Listing
Modified Sat Mar 6 06:31:37 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Changed constants value of the xx_TYPE ones and removed the ones that are
  not used anymore.
Updated the EIF_xxx_CODE constant for TUPLE type identification so that they
  can fit on 4 bits only.


Revision 41882 - Directory Listing
Modified Sat Mar 6 06:30:23 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added declaration of intialization and clean up routines for `gen_conf.c'
  mostly needed in the multithreaded case.


Revision 41881 - Directory Listing
Modified Sat Mar 6 06:29:30 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Updated melted initialization of the `esystem' array to match the new
  definition for `struct cnode' and generated byte code by compiler.


Revision 41880 - Directory Listing
Modified Sat Mar 6 06:28:42 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Use `rt_struct.h' to access new way of getting some information from `cn_flags'
  of the `cnode' for an Eiffel type.


Revision 41879 - Directory Listing
Modified Sat Mar 6 06:26:54 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Made `nbref' private to runtime, i.e `shared'.


Revision 41878 - Directory Listing
Modified Sat Mar 6 06:26:31 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Since basic types are not encoded in a special way anymore for generic
  conformance, no conversion from the _TYPE constants to the `egc_xx_dtype'
  constants is needed. We can simply return directly the result of the call
  to `eif_compound_id'


Revision 41877 - Directory Listing
Modified Sat Mar 6 06:25:02 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Use `rt_struct.h' to get acces to `References' and `Dispose' whose definition has been moved
  to `rt_struct.h'.


Revision 41876 - Directory Listing
Modified Sat Mar 6 06:23:25 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
No more special code for basic types, we simply use the dynamic type value
  stored in `egc_xxx_dtype' variables.


Revision 41875 - Directory Listing
Modified Sat Mar 6 06:22:44 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added `non_generic_type_names' used to store type names in `gen_conf.c'. Per
  thread data to avoid useless synchronization.


Revision 41874 - Directory Listing
Modified Sat Mar 6 06:21:36 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added initialization and cleaning up of the generic conformance per thread data.


Revision 41873 - Directory Listing
Modified Sat Mar 6 06:20:20 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Simplified `cnode' structure. Make sure that all members starts with `cn_'
  for consistency. Now instead of having differnt query fields, we now have
  just one `cn_flags' that stores the `tuple_code' in the lower part of `cn_flags'
  and in the upper part we store the following information: expanded, composite,
  deferred, has_dispose, declared as expanded.


Revision 41872 - Directory Listing
Modified Sat Mar 6 06:18:34 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
New version of independent store that matches new encoding for generic types.


Revision 41871 - Directory Listing
Modified Sat Mar 6 06:18:00 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Since `EIF_REFERENCE_CODE' is not public, we need to hard code the value
  for reference items which has changed from 'r' to 0x00. Hopefully this is
  the last time we change the value for EIF_REFERENCE_CODE otherwise we
  might miss this and code will suddenly stop working properly.


Revision 41870 - Directory Listing
Modified Sat Mar 6 06:16:22 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Moved non-public definitions to `rt_struct.h'.


Revision 41869 - Directory Listing
Modified Sat Mar 6 06:15:33 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Removed definition of `eif_gen_is_uniform' since not used.


Revision 41868 - Directory Listing
Modified Sat Mar 6 06:14:56 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Moved `Cecil' definition to `rt_struct.h' since not used publicly.
Cosmetics.


Revision 41867 - Directory Listing
Modified Sat Mar 6 06:14:00 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Use `rt_struct.h' to get acces to `References' whose definition has been moved
  to `rt_struct.h'.


Revision 41866 - Directory Listing
Modified Sat Mar 6 06:12:59 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Adapted to new byte code and new cnode structure.
Fixed incorrect code because we forgot to updated those files when interpreter
  was changed (byte code for manifest tuples and arrays)


Revision 41668 - Directory Listing
Modified Wed Mar 3 20:27:18 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Use INTEGER_32 instead of just INTEGER.


Revision 41543 - Directory Listing
Modified Wed Feb 25 23:22:55 2004 UTC (15 years, 10 months ago) by jfiat
Original Path: trunk/Src/bench/C
added a return value for `eif_thr_cond_wait_with_timeout'
it will return a value if it reach the timeout or the ontime result.
otherwise, if it fails, it will raise an exception as before.


Revision 41531 - Directory Listing
Modified Wed Feb 25 18:26:58 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
New VMS specific code (fixing various issues on VMS related to our new
runtime implementation, and better file handling).


Revision 41530 - Directory Listing
Modified Wed Feb 25 18:19:30 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
New VMS specific code (fixing various issues on VMS related to our new
runtime implementation).


Revision 41494 - Directory Listing
Modified Tue Feb 24 02:23:08 2004 UTC (15 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug with generic conformance in multithreaded mode introduced with 5.4.
The issue is that we introduced `eif_gen_count_with_dftype' and
`eif_gen_typecode_with_dftype' instead of `eif_gen_count' and `eif_gen_typecode',
and we implemented the later using the new `*_with_dftype' version.
However the `*_with_dftype' version needs to be protected using the generic
conformance mutex, which was previously not done.


Revision 41329 - Directory Listing
Modified Thu Feb 12 01:39:35 2004 UTC (15 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `eif_global_once_mutex' and added `eif_global_once_set_mutex' to
protect call to `globalonceset' which inserts global once results in `global_once_set'.
This is the runtime fix corresponding to the Eiffel compiler fix for global
once in multithreaded environment. Contention is minimal and there should
be no deadlock anymore resulting of global once evaluation.


Revision 41325 - Directory Listing
Modified Wed Feb 11 02:24:10 2004 UTC (15 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Merged from Eiffel_54:
Fixed incorrect implementation of `EIF_COND_WAIT_WITH_TIMEOUT' for Unix
because we were taking time in seconds instead of milliseconds. Moreover
`timeout' argument was not taken into account, so it did not mean anything
to pass a timeout argument.
Also on Solaris, when a timeout occurred we raised an exception instead
of ignoring the error since it is valid to have a timeout. This was because
POSIX says it should return ETIMEDOUT and Solaris return ETIME.


Revision 41290 - Directory Listing
Modified Mon Feb 9 19:09:26 2004 UTC (15 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added missing declaration of `eif_set_new_recoverable_format' used from
STORABLE class.


Revision 41162 - Directory Listing
Modified Thu Jan 29 15:28:06 2004 UTC (15 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `eif_file_has_changed' since we don't need it on the eiffel side.
Modified windows implementation of `eif_date' so that the returned value
does not depend on the timezone, nor on the daylight saving changes. This
fixes an annoying bug where changing timezone we would recompile a lot
of classes for nothing


Revision 41042 - Directory Listing
Modified Fri Jan 23 17:46:13 2004 UTC (15 years, 11 months ago) by jfiat
Original Path: trunk/Src/bench/C
added a comment, for lazy people who just want to uncomment the line for compiling using default config of VisualStudio


Revision 41008 - Directory Listing
Modified Mon Jan 19 18:03:36 2004 UTC (16 years ago) by manus
Original Path: trunk/Src/bench/C
No need for C external for `eif_putenv' and `eif_safe_putenv'. Now everything
is done at the Eiffel level in EXECUTION_ENVIRONMENT using the C external
`putenv'. The Eiffel level is responsible for keeping the memory allocated
for an environment variable setting.
No more side effects on Windows as we don't set the registry keys anymore.


Revision 40987 - Directory Listing
Modified Wed Jan 14 16:24:55 2004 UTC (16 years ago) by manus
Original Path: trunk/Src/bench/C
Merged from Eiffel_54:
Fixed an issue reported by CBOT where it was crashing in `eif_thr_exit' because
`thread_object' seems to be invalid. This was because before we launch the
thread we adopt the thread object in thread A which is going to launch
thread B, and then we wean it in thread B when it exit. So this is bad
as adopting and weaning of objects should be done in the same thread of
execution.
Fixed a dead lock when launching thread quickly. We were keeping the parent
mutex `child_mutex' locked for too long therefore the parent was blocked
and when we exit we need a GC synchronization which was not happening because
parent was blocked. We could have marked the launching thread blocked, but
moving the synchronization on the parent `child_mutex' before the GC synchronization
seems sufficient.


Revision 40967 - Directory Listing
Modified Sat Jan 10 06:17:37 2004 UTC (16 years ago) by manus
Original Path: trunk/Src/bench/C
Removed old SCOOP implementation. New implementation of SCOOP will follow
work being done at the ETH Zurich by Bertrand's team.


Revision 40951 - Directory Listing
Modified Thu Jan 8 22:21:53 2004 UTC (16 years ago) by manus
Original Path: trunk/Src/bench/C
Fixed eweasel test `melt049' related to WIDE_CHARACTER operation (comparison,
min,max).


Revision 40880 - Directory Listing
Modified Thu Dec 25 00:20:25 2003 UTC (16 years ago) by manus
Original Path: trunk/Src/bench/C
Fixed a registry key handle leaks when a key entry exist in HKCU but not value
existed, then we had a leak, because we were not closing the open registry
key before trying to open the one in HKLM.


Revision 40878 - Directory Listing
Modified Wed Dec 24 19:07:11 2003 UTC (16 years ago) by manus
Original Path: trunk/Src/bench/C
Replaced `RTAS' and `RTAS_OPT' by `RTAR'.
Changed order of arguments in `RTAR' to make it simpler to understand: first
  argument is the object to which a reference is assigned to, the second
  is the reference being assigned to the first argument.


Revision 40877 - Directory Listing
Modified Wed Dec 24 19:07:03 2003 UTC (16 years ago) by manus
Original Path: trunk/Src/bench/C
Replaced `RTAS' and `RTAS_OPT' by `RTAR'.
Changed order of arguments in `RTAR' to make it simpler to understand: first
  argument is the object to which a reference is assigned to, the second
  is the reference being assigned to the first argument.
Removed RTRM as now compiler generates RTRV followed by RTAR.
Removed non-used macros due to the above changes.


Revision 40876 - Directory Listing
Modified Wed Dec 24 17:55:57 2003 UTC (16 years ago) by manus
Original Path: trunk/Src/bench/C
Removed `special_erembq' not used since we removed EIF_REM_SET_OPTIMIZATION
a while ago.


Revision 40861 - Directory Listing
Modified Tue Dec 23 00:16:12 2003 UTC (16 years ago) by manus
Original Path: trunk/Src/bench/C
Fixed eweasel test `exec159' because there was a buffer overflow when
filling the stack trace with a routine name bigger than the buffer. We
limit now the routine name to the buffer size.
Prevented the same bug with class names.


Revision 40787 - Directory Listing
Modified Mon Dec 15 19:16:12 2003 UTC (16 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added optional `flush_buffer' routine which is called only if `compiler_need_flush'
 is turned on so that `eweasel' works on Windows as on Windows reading from a
 pipe will block if on the other hand of the pipe the buffer has not been flush.
 Default behavior has not changed, it is only enabled if `compiler_need_flush'
 which is done by command line compiler.


Revision 40534 - Directory Listing
Modified Fri Nov 28 23:19:45 2003 UTC (16 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect `cop_stack' management with rescue clauses. When the last
element inserted in `cop_stack' moves its top to the end of the current
arena chunk, then if the current routine as a rescue clause and that current
execution fails, then when restoring `cop_stack' it fails because we do not
stop at `lv' as we should be we unwind the stack until it crashes. This is
because when we go back by one element, and that we reach the botton of
the current arena, we should actually move the cursor to the top of the
previous chunk if any.


Revision 40529 - Directory Listing
Modified Thu Nov 27 00:49:12 2003 UTC (16 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed memory leak in `read_header' and `iread_header' when a generic class
has more than MAX_GENERICS generic parameters. We were allocating memory
dynamically, but forgot to free it after we are done with it.


Revision 40522 - Directory Listing
Modified Wed Nov 26 18:49:52 2003 UTC (16 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in `send_stack_variables' where `AK_OK' was only sent if there
  was something to read, but we should still send it if there was nothing
  to read.
Fixed bug in `go_ith_stack_level' where if you have more than one chunk in
  `eif_stack', and if you happen to reach the end of a chunk, we need to
  use the previous chunk if any. This is a fix which was similar to the fix
  we made a long time ago to `get_next_execution_vector'.


Revision 40438 - Directory Listing
Modified Sat Nov 15 00:22:26 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Made sure that argument passing of body index in `new_exset' is done using
the BODY_INDEX type and not just `int'.


Revision 40437 - Directory Listing
Modified Fri Nov 14 22:01:20 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Updated code to use BODY_INDEX instead of a uint16 as per new way to read
body indexes in melted/frozen code.


Revision 40436 - Directory Listing
Modified Fri Nov 14 22:00:41 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Forgot to add the new byte code for manifest tuple generation added back
in June of this year.


Revision 40435 - Directory Listing
Modified Fri Nov 14 22:00:08 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Factorized code for manifest tuple as it is the same for BC_TUPLE and BC_PTUPLE.


Revision 40434 - Directory Listing
Modified Fri Nov 14 20:49:11 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug since we converted from `uint16' to `BODY_INDEX' for the `info'
field of `struct desc_info' we also need to read a little bit more data.


Revision 40433 - Directory Listing
Modified Fri Nov 14 06:49:14 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed runtime limitation with body indexes. They used to be limited to 65535
because of its internal representation by a `uint16'. Now we have introduced
a new type BODY_INDEX to make the C code a little bit more typesafe and also
to make easier future changes. Now it is implemented as a uint32, but in the
future we could make it bigger.


Revision 40432 - Directory Listing
Modified Fri Nov 14 06:46:31 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Updated to new type for BODY_INDEX (a uint32 instead of a uint16).


Revision 40431 - Directory Listing
Modified Fri Nov 14 06:45:32 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Definition of new type BODY_INDEX which is a `uint32' to replace the `uint16'
whose limit we reached with large system.


Revision 40396 - Directory Listing
Modified Wed Nov 12 18:52:56 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Added `find_all_instances' to find all instances in a running system.


Revision 40395 - Directory Listing
Modified Wed Nov 12 18:49:50 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Added precondition to `eif_thr_is_root' to ensure it has a valid `rt_globals'.


Revision 40394 - Directory Listing
Modified Wed Nov 12 18:49:22 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Reorder cleanup so that `eif_thr_is_root' always works. So we have moved
`eif_thread_cleanup' after all the other cleanups that might call `eif_thr_is_root'.


Revision 40303 - Directory Listing
Modified Thu Nov 6 17:19:27 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Nicer fix for `Disp_rout' as it supposes to return a boolean expression.


Revision 40301 - Directory Listing
Modified Thu Nov 6 06:59:54 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Make sure that `Disp_rout' in finalized mode returns NULL when `egc_edispose'
is not generated by compiler because no one effects `dispose' from DISPOSABLE.


Revision 40270 - Directory Listing
Modified Wed Nov 5 23:59:29 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
New way to generate manifest TUPLEs, we don't need to call creation procedure
anymore as the one in TUPLE does nothing now.


Revision 40249 - Directory Listing
Modified Wed Nov 5 18:29:03 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed stupid typo.


Revision 40238 - Directory Listing
Modified Wed Nov 5 04:05:03 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Exported value of `eif_is_new_recoverable_format' to other modules through
`eif_is_new_recoverable_format_active' feature. So that EiffelNet can also
depend on this flag to store using the old independent store or the new one.


Revision 40137 - Directory Listing
Modified Mon Nov 3 19:07:43 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
New version number Eiffel55


Revision 40110 - Directory Listing
Modified Sat Nov 1 22:49:23 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed vicious bug with 5 or more arguments passed from EiffelStudio to debugged
application, because when we reallocate a new argv array, we forgot to initialize
new cells to NULL. Thanks for David Hollenberg to provide a reproducable test
case.


Revision 40053 - Directory Listing
Modified Tue Oct 28 20:39:51 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug when retrieving TUPLE types in `eif_gen_id_from_cid'. The conversion
of the `a_cidarr' array should not take into account the TUPLE uniformizer and the
count (previously it was only skipping the count). It is ok not to convert
the uniformizer as this is not used at all, i.e. it is always set to 0, and
when you had `dtype_map [0]' which was not initialized by the retrieval part
it could produce unexpected results.


Revision 39904 - Directory Listing
Modified Wed Oct 22 23:47:18 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect check statement.


Revision 39810 - Directory Listing
Modified Sun Oct 19 19:15:55 2003 UTC (16 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Proper ANSI declaration of argumentless routines.


Revision 39712 - Directory Listing
Modified Fri Oct 17 19:08:53 2003 UTC (16 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `cachable' functionality. Now the compiler really knows when you can
cache and when you cannot cache the result of a full dynamic type computation.
If the type is known to be explicit in the compiler then we are garanteed that
we can cache the result into `typcache'. Otherwise the emitter generates NULL
and the C code for `eif_coumpound_id' already handles this nicely by not trying
to store the computed value.
It does not seems to speed up or slow down things, it just make sure that unused
functionality are removed in order to simplify the code.


Revision 39684 - Directory Listing
Modified Thu Oct 16 21:02:58 2003 UTC (16 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
To prevent a dead lock when two threads are currently initializing a global
once.


Revision 39411 - Directory Listing
Modified Sat Oct 4 22:02:00 2003 UTC (16 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Added `eif_id_for_typarr' which basically exports `RTUD_INV'.
Added `RTID' which calls `eif_id_for_typarr' in workbench mode, needed
  to get a correct ID for `typarr' when computing generic type for an
  anchor.
Remove special case for anchored types in `eif_id_of' as now the compiler will
 generate their computation, so the value will be already inserted in the
 typarr passed to `eif_compound_id'/`eif_id_of'.


Revision 39410 - Directory Listing
Modified Sat Oct 4 21:59:19 2003 UTC (16 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed creation of `typarr' to match new code generation. Moreover it fixes
an issue with not taking the RTUD_INV of a computed type of an anchor.


Revision 39273 - Directory Listing
Modified Wed Sep 24 19:26:18 2003 UTC (16 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Moved back #define to public header files.


Revision 39157 - Directory Listing
Modified Fri Sep 19 21:09:07 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added `sp_elem_size' needed for `element_address' for SPECIAL.


Revision 39094 - Directory Listing
Modified Wed Sep 17 19:30:44 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Improved GC collection. First now the minimum value that `plsc_per' can have
is now 1, not PLSC_PER as it used to be before. This is required when a lot
of garbage is created in the chunks, waiting PLSC_PER to get rid of this garbage
was too long.
Because the way code was written `clsc_per' was always called after a full
collection. Moreover our experience shows that calling `full_coalesc' after
`plsc' is the most effective way to speed up allocation. Therefore now we always
do in `acollect' `plsc + full_coales'.
We now increase or decrease `plsc_per' in a more dichotomic way. It improves
performance a bit, but maybe the dichotomic point should be better chosen.


Revision 39077 - Directory Listing
Modified Tue Sep 16 21:04:42 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added upper case version of `eif_xxx_item' routine so that they can be used
in inline externals that are using the $$_result_type trick to play with the
type of the generic parameter.


Revision 39070 - Directory Listing
Modified Tue Sep 16 02:29:18 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed precondition of `assign'.


Revision 39063 - Directory Listing
Modified Tue Sep 16 00:32:02 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed issue with `eiffel_usage' which could increase until reaching MAX_INT32_VALUE
therefore becoming negative and thus preventing any collection to happen until
it becomes positive again. Now, each time we do a small collection we decrease
`eiffel_usage' by the amount that was collected in the free list. Moreover we
always make sure that `eiffel_usage' is positive.


Revision 39060 - Directory Listing
Modified Mon Sep 15 22:39:15 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
`eiffel_usage' is shared not public.


Revision 39057 - Directory Listing
Modified Mon Sep 15 21:27:51 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed eweasel entry exec060.


Revision 39031 - Directory Listing
Modified Fri Sep 12 17:58:13 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a malicious bug for Windows application that creates a console. The following
sequence was not reading any string line and printed 0:
io.read_integer
io.read_string
print (io.last_string.count)
Where as one line 2 it should wait for user input.
All of this because we forgot to have the _O_TEXT flag for the input file.


Revision 39021 - Directory Listing
Modified Fri Sep 12 02:10:58 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added `esintX_size' macros for all integer types.


Revision 39001 - Directory Listing
Modified Thu Sep 11 21:28:54 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed mistakes in documentation.


Revision 38982 - Directory Listing
Modified Wed Sep 10 18:12:48 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added a spin lock count for improving perf on multi cpu machines.


Revision 38980 - Directory Listing
Modified Wed Sep 10 00:22:02 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed issue with `pthread_cond_timedwait' on Windows, we dit not take into
account when it fails because of WAIT_TIMEOUT, in which case it is normal and
no exception should be thrown, by making sure we return 0 in such cases.
Added more error code management in `pthread_cond_wait' and `pthread_cond_timedwait'.


Revision 38979 - Directory Listing
Modified Wed Sep 10 00:20:57 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed issue with `pthread_cond_timedwait' on Unix, we dit not take into
account when it fails because of ETIMEDOUT, in which case it is normal and
no exception should be thrown.


Revision 38968 - Directory Listing
Modified Mon Sep 8 23:46:42 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed dead-lock issue on platforms where mutexes are not recursive.
Made `db_mutex' private instead of shared as only used here.


Revision 38958 - Directory Listing
Modified Mon Sep 8 00:53:10 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added `socket_fides' to public per thread data so that EiffelNet storable
mechanism becomes thread safe.


Revision 38950 - Directory Listing
Modified Sun Sep 7 05:59:28 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Cosmetics: renamed UNUSED_XXX into BC_NOTUSED_XXX
Removed reference to BC_RELEASE and BC_PROTECT as we don't do this in melted
  code anymore, we always call the encapsulation of the C external which takes
  care of that.


Revision 38941 - Directory Listing
Modified Sun Sep 7 00:27:20 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Do not perform a cast, now the compiler makes sure that both left and right
side of assignment have the same type: added a check statement to ensure this.


Revision 38940 - Directory Listing
Modified Sat Sep 6 20:49:27 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Removed usage of `install.SH' as I don't remember having ever used it.


Revision 38939 - Directory Listing
Modified Sat Sep 6 20:43:20 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added removal of `bytedump' and `meltdump' when doing a clean.


Revision 38918 - Directory Listing
Modified Fri Sep 5 22:59:30 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed issue found with eweasel test exec161 where because we had a signed/
unsigned comparison, a test for positive was successful but computation
was negative. Now we make sure to compare in an unsigned fashion.


Revision 38915 - Directory Listing
Modified Fri Sep 5 22:33:47 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed eweasel bug exec160, where we forgot to check that there is enough
space in the scavenge zone to allocate the requested memory.


Revision 38913 - Directory Listing
Modified Fri Sep 5 22:09:36 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug which prevented to have BIT of size greater or equal to 2^15,
this was due to the fact that the size was said to be a short, where it should
have read a long integer. (fixed eweasel test melt041)


Revision 38893 - Directory Listing
Modified Thu Sep 4 23:43:32 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed assertion violation in `malloc_eiffel_list' when called from `bmalloc'
because size arguments was not properly padded to ALIGNMAX.


Revision 38891 - Directory Listing
Modified Thu Sep 4 21:49:04 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
No need for BC_PROTECT and BC_RELEASE as this is now done in C generated code
for the encapsulated external.


Revision 38877 - Directory Listing
Modified Thu Sep 4 17:21:13 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Ensure that runtime configurations are not set if environment variable that
should contain an integer value is empty.


Revision 38797 - Directory Listing
Modified Fri Aug 29 23:53:25 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Redesigned multithreaded aspect of traverse.c. Previous fix was incorrect
as I forgot that the traversal was physically marking objects using the EO_STORE
flags. Therefore we cannot have two threads at the same time doing such an
operation. A possible fix would be to have a table of objects being marked
rather than marking the objects, but it could be costly in memory.

Therefore now we are back to global variable and their access needs to be
protected by using the `eif_eo_store_mutex'. Added documentation in the process.


Revision 38796 - Directory Listing
Modified Fri Aug 29 23:50:53 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Slight redesign of interaction with GC in MT mode.
1 - If the per thread data `thread_can_launch_gc' is not enabled, then it means
  that our thread explicitely requested that we do not launch a GC cycle. This
  is used when a thread hold the `eif_eo_store_mutex' to prevent dead-lock with
  GC when we used this lock.
  (We we will loose some memory in the process but we don't have any other
  ways for the moment and the impact is limited to those using the above mutex)
2 - In `trigger_gc_cycle' and `trigger_smart_gc_cycle', if we are already
  under a GC synchronization, then no need to request for various locks as
  we are guaranteed to be the only thread running. If we are not and that
  `thread_can_launch_gc' is disabled then we don't call for a GC cycle.
3 - Did the same for the call to `plsc' in `malloc_free_list'.


Revision 38795 - Directory Listing
Modified Fri Aug 29 23:36:20 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added FILE_TYPE_MAX, formerly defined in `file.c' but now defined here
as the value is used in rt_globals.h.


Revision 38794 - Directory Listing
Modified Fri Aug 29 23:35:28 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added macro to lock and unlock the `eif_g_data_mutex'.


Revision 38793 - Directory Listing
Modified Fri Aug 29 23:35:00 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added `eif_g_data_mutex' to protect access to `g_data' in MT mode. It is
better than before but not perfect. We should find a way to ensure that only
one thread can play with the `status' flag of the GC.


Revision 38792 - Directory Listing
Modified Fri Aug 29 23:33:38 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in MT mode where if two threads are running and both are opening
files, both threads could open a file using the same mode although they have
both requested a different mode. This was due to a local static variable
which holded the type in `file_open_mode' which was shared among all threads.
Now we added a new private per thread `file_type' variable to remove this
problem.


Revision 38791 - Directory Listing
Modified Fri Aug 29 23:31:26 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Protect store routine so that it is thread safe by using the
`eif_eo_store_mutex' to ensure that only one traversal at the time is performed.


Revision 38790 - Directory Listing
Modified Fri Aug 29 23:31:08 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Because we need to stop the GC while retrieving objects and because some
other threads might reactivate it while the retrieval part thinks it is stopped
we have been forced to perform a GC synchronization before starting the
retrieval. In the future, we need to fix that so that only one thread can be
authorized to turn off or on the GC.


Revision 38789 - Directory Listing
Modified Fri Aug 29 23:28:08 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added protected access to `g_data' in multithreaded mode by using `eif_g_data_mutex'.


Revision 38788 - Directory Listing
Modified Fri Aug 29 23:27:21 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added initialization and destruction of two new mutexes:
  eif_eo_store_mutex: to protect traversal/marking of objects with EO_STORE flag
  eif_g_data_mutex: to protect access to `g_data'
Added initialization of `thread_can_launch_gc' to 1 so that every thread is
  allowed to launch a GC. This is disabled when a thread hold the `eif_eo_store_mutex'
  by preventing a possible dead lock as current thread is not registered to
  the GC for being blocked. Meaning that if a thread is blocked for a GC synchronization
  it will have to wait until the mutex is released.
Fixed `eif_enter_eiffel_code' and `eif_exit_eiffel_code' so that if current
  thread is the synchronizer one, we don't update the `gc_thread_status' as
  this is useless and could mess up a few things especially when there are
  recursive calls to `eif_synchronize_gc'.


Revision 38787 - Directory Listing
Modified Fri Aug 29 23:22:40 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed `edclone' so that it is thread safe by using the `eif_eo_store_mutex'
to ensure that only one traversal at the time is performed.


Revision 38786 - Directory Listing
Modified Fri Aug 29 23:21:29 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Protect compiler store routine so that it is thread safe by using the
`eif_eo_store_mutex' to ensure that only one traversal at the time is performed.


Revision 38775 - Directory Listing
Modified Fri Aug 29 21:11:35 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed typo for READ_WRITE_LOCK macros on Solaris.


Revision 38755 - Directory Listing
Modified Thu Aug 28 18:32:31 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a bug in `collected' and `collected_average' from GC_INFO because
we did not take into account the case were a collection end up having
more allocated memory (often the case when moving objects outside the scavenge
zone).


Revision 38752 - Directory Listing
Modified Thu Aug 28 03:21:37 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Updated to new signature of EIF_LW_MUTEX_CREATE macro.


Revision 38751 - Directory Listing
Modified Thu Aug 28 03:21:22 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Removed EIF_GET_CONTEXT when unnecessary.


Revision 38741 - Directory Listing
Modified Wed Aug 27 23:09:42 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
First exportation of read/write lock for newly introduced READ_WRITE_LOCK class
in EiffelThreads. If underlying platform provides the functionality we use it,
otherwise we provide ours based on mutex and condition variables.


Revision 38737 - Directory Listing
Modified Wed Aug 27 21:04:44 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added dependency between rt_threads.h and eif_threads.c


Revision 38736 - Directory Listing
Modified Wed Aug 27 19:25:37 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Forgot to protect a ISE_GC specific code with #ifdef.


Revision 38735 - Directory Listing
Modified Wed Aug 27 19:24:54 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Improved performance of synchronizations on Windows by using a spin count
when using CriticalSections. We have set the spin count value to 4000 as
it is the value Microsoft says he is using for the heap allocator and for
us we go from 20s to 13s in total execution time.
It only applies to Windows, the other platforms do not take into account
the value we pass as they don't have the notion of spin count for low level
mutexes.
To support this we have modified EIF_LW_MUTEX_CREATE to take a new argument
which is the requested spin count.

Note that the `eif_gc_mutex' does not use spin count because if the mutex
is locked then we should wait until the GC is done, and doing an active
wait will not help since a GC collection takes quite a while.


Revision 38702 - Directory Listing
Modified Tue Aug 26 18:46:27 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
New thread safe memory allocation/GC collection. In addition of that we made
a major speed improvements of the allocation/GC collection mechanism which
provides a gain of roughly 15% in speed. You will find below the changes we
made to achieve that. Tested on the compiler we went from 1102s to 934s
and we even removed our calls to `full_collect' and `full_coalesc' we added
a long time ago to improve runtime performance (when we kept them the amelioration
was of only 945s, so not having them and let the runtime decides for us
is a better strategy).

Now when we allocate, we always try to allocate in the scavenge zone, if it
fails we either do a small collect or we do an automatic one if necessary and
we try again.
If it fails, then we try to find an empty spot in the free list. If it fails
we perform an automic collection if necessary, and we retry again.
If it fails we go to `malloc_free_list' which depending on the value of `cc_for_speed'
will either allocate a new chunk of memory or launch a full collection. At
this point we should have some memory. This is by doing this decomposition
in the memory allocation that we were able to made it thread safe. A thumb of
rule is that the thread safe allocation routines cannot call the GC, only the
GC can call them (important to avoid dead-lock).

As you may notice we try delay the full collection as much as possible as
it is costly. The second improvement is actually on the full collection.
Before `plsc_per' was a fixed value. Now it is not fixed anymore it is a variable
value. The idea is that each time we do a full collection, we analyze if
we have freed a lot memory or almost nothing. If we did a lot, then it means
that we should decrease the current value of `plsc_per' to have less to free
each time so that we don't allocate to much from the kernel. If we are in
between (not a lot, not nothing) we don't change it. If we free almost nothing
then we increase the value of `plsc_per' so that next time we hope to free more.
From 20 we go to 100 for `plsc_per' when compiling the batch compiler showing
that it made sense to have it variable rather than fixed.

One more thing we noticed that sometime with this new configuration we were
using too much memory, We found out that the reason was due to the moving
of objects from the scavenge zone to outside. Because in most cases we
did not have enough space in the chunks of memory. Therefore we were causing
multiple calls to `allocate_from_core' which was allocating memory that
at the end was collected next time we called a full collection. To avoid this
situation, we have forced for the next call to `acollect' a full collection by
incrementing `force_pslc' when this happens.

Renamed `gmalloc' into `malloc_from_eiffel_list_no_gc'.
Merged `set_up' and `set_up_chunk' into a single routine as we don't make the difference
  anymore between a C chunk and an Eiffel one.
Factorized `allocate_free_list' to avoid code duplication of critical loop.
Size of C chunks is not paded by `eif_chunk_size' anymore, but by PAGESIZE_VALUE
  instead.
Removed `xfreechunk' in favor of `eif_rt_xfree' as they had the same implementation.
Added `trigger_gc_cyle' and `trigger_smart_gc_cycle' which are entry point
  to collection routines.
Speed up `malloc_from_zone' by reducing its size to favorize inlining, we do
  not try to recover when it fails, it is up to the caller to decide what to do.
Added `att_to_stack' a generic routine to avoid code duplication.

Added full documentation of routines for `malloc.c'.


Revision 38701 - Directory Listing
Modified Tue Aug 26 18:16:54 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Improved allocation performance by not requesting a full GC synchronization
each time we allocate an object. So now we can remove the protection from the
mutexes.
Added definition of `DISCARD_BREAKPOINTS' and `UNDISCARD_BREAKPOINTS' are
they might be used by more than one C files. Now they are only used by GC.


Revision 38700 - Directory Listing
Modified Tue Aug 26 18:14:50 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
New runtime configuration values that contribute to a 15% or more speed
improvements:
1 - doubled value of CHUNK_DEFAULT from 262144 to 524288.
2 - doubled value of GS_ZONE_SZ_DEFAULT from 2MB to 4MB

Removed MB_EO and MB_CHUNK as we don't make the difference now.
Added declaration of mutexes used for memory allocation synchronization.
Renamed `gmalloc' into `malloc_from_eiffel_list_no_gc'.


Revision 38699 - Directory Listing
Modified Tue Aug 26 18:11:45 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added declaration for `eif_thread_cleanup'.


Revision 38698 - Directory Listing
Modified Tue Aug 26 18:11:19 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Removed GC synchronization in `mem_free' since all routines called are thread
safe. It is up to the caller to ensure that at the time of the call the memory
is still allocated.
Removed updating of `eiffel_usage' to avoid two threads updating its value
at the same time, moreover look in the added comment why it was not that useful
to do it anyway.


Revision 38697 - Directory Listing
Modified Tue Aug 26 18:08:56 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added new global mutexes initialization when root thread is created. Most of the
mutexes are used for memory and GC synchronization.
Added `eif_thread_cleanup' to free memory used by those mutexes in the final
call to `reclaim'.


Revision 38696 - Directory Listing
Modified Tue Aug 26 18:07:47 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Updated to new signature of `sp_init' which returns address of passed object
in case it moved.


Revision 38695 - Directory Listing
Modified Tue Aug 26 18:07:11 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Updated calls to sp_init which now does not require any protection since
`sp_init' returns the updated address of the object passed as argument.


Revision 38693 - Directory Listing
Modified Tue Aug 26 17:48:32 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Use `rt_garcol.h' to get definition of `epush' or `refers_new_object' as
most `extern' definition of `eif_garcol.h' have been moved into `rt_garcol.h'.
Changed PLSC_PER default value from 8 to 20, as experiences shows that doing
too many full collection degrades the performances.


Revision 38692 - Directory Listing
Modified Tue Aug 26 17:46:14 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Use `rt_garcol.h' to get specification of `epush'.


Revision 38688 - Directory Listing
Modified Tue Aug 26 02:01:20 2003 UTC (16 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added possible new tags used for routine documentation.


Revision 38601 - Directory Listing
Modified Tue Aug 19 23:45:35 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added protection with ISE_GC so that we don't get too many warnings about
non-used local variables.


Revision 38600 - Directory Listing
Modified Tue Aug 19 23:44:49 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Forgot to protect call to `create_scavenge_zone' so that it compiles when
not using ISE_GC.


Revision 38599 - Directory Listing
Modified Tue Aug 19 21:48:15 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Refactored code for generation scavenging so that it is more clear what the
value of `gen_scavenge' means. That is to say we have now 3 states instead of 4.
It is either `disabled', `enabled' and `enabled but stopped'. When it is
disabled, sometime the GC will try to activate it again, before it was done
by setting the GS_SET flag and let `malloc_from_zone' recreate the savenge
zones. Now, instead of putting a flag, the GC tries to create those scavenge
zones. If it succeeds then of course `malloc_from_zone' will be called.

By doing so, we reduced the size of `malloc_from_zone' which can be inlined
(at least on Windows platforms using VC++). We mostly removed code that tested
if allocation in scavenge zone was allowed and if so and no scavenge zone
were available we were forcing a creation. This, by the way, was a major issue
for multithreaded application that we don't have to worry anymore. This
improvement in the size of `malloc_from_zone' speeds up our fast memory
allocation. On Unix, we noticed a gain of 5s from 1104 to 1099s of compile time.

As a consequence of this change `mem_speed' has been changed to force creation
of the scavenge zone if needed. Also the creation of scavenge zone is now
taken care in `eif_alloc_init' in non-multithreaded application and in
`eif_thr_init_root' for multithreaded application (of course `cc_for_speed'
needs to be set to 1 otherwise they are not needed).

By doing a review of callers of `malloc_from_zone' to ensure its is called
properly (i.e. gen_scavenge == GS_ON), I've noticed that `spmalloc' was not
nicely coded. I've refactored the code to look more like `emalloc_size'. First
we try to allocate in the scavenge zone if possible, then in the free list.
Note that if both allocation failed we don't try to do more like we do
in `emalloc_size'. Maybe that's something we ought to fix in the future.


Revision 38598 - Directory Listing
Modified Tue Aug 19 21:36:16 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Use `ise_printf' to display the assertions violations. It is more practical
than `printf' when one want to put a breakpoint when an assertion violation
occurs and it has the same effect as `printf', only one more indirection.


Revision 38588 - Directory Listing
Modified Tue Aug 19 16:29:42 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Reverted code back to version 2.29 in respect of `m_largest'. But instead of
being a global variable it is a per thread variable. The reason of this
comeback is because adding an attribute in MEMORY was not a great idea as too
many people inherit from MEMORY therefore I was breaking their storable code.


Revision 38576 - Directory Listing
Modified Tue Aug 19 00:14:32 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Moved testing part out of `garcol.c' into `tests/garcol_test.c'


Revision 38572 - Directory Listing
Modified Mon Aug 18 22:05:54 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added routine documentation in XML format.
Fixed some export status that were wrongly set to public where it should have
  been shared.


Revision 38571 - Directory Listing
Modified Mon Aug 18 20:39:55 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `mksp' which was not used at all by runtime code, nor by Eiffel code.


Revision 38561 - Directory Listing
Modified Mon Aug 18 17:27:18 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added `eif_is_syncrhonized' to find out if all threads are synchronized or not.
Improved output for synchronization/unsynchronization of GC.
Removed useless output statement of synchronization objects creation/destruction.


Revision 38560 - Directory Listing
Modified Mon Aug 18 17:23:05 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added declaration of `eif_is_synchronized' when assertions are enabled.
On Solaris, fixed creation of EIF_LW_MUTEX_TYPE so that allocated memory is
  zeroed as required per documentation. Remove raising of exception as well
  so that calls are as efficient as possible.


Revision 38559 - Directory Listing
Modified Mon Aug 18 17:15:35 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition of `ise_printf' when EIF_ASSERTIONS is defined to avoid
missing definition for it when in `rt_assert.h' we use `ise_printf' to
report errors.


Revision 38550 - Directory Listing
Modified Sun Aug 17 23:30:46 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Changed way manifest Eiffel strings are initialized or the way we update
`count' from STRING class. Now in final mode only, instead of performing
a function call to `set_count' we update `count' attribute directly because
we know the `count' offset from top of Eiffel string object (through
`egc_str_count_offset'). Doing this saves about 10-20s on 1124s.
Added the same trick for `internal_hash_code' which is only initialized in
final mode (in workbench mode it remains set to 0 forcing a computation during
execution).


Revision 38541 - Directory Listing
Modified Sat Aug 16 23:19:15 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Protected `eif_rt_xfree' which required global synchronization to allow
update of internal data structure for allocating/freeing memory.


Revision 38518 - Directory Listing
Modified Fri Aug 15 16:30:51 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Implemented `eif_rt_xmalloc' for multithreaded boehm GC.


Revision 38517 - Directory Listing
Modified Fri Aug 15 16:22:50 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a dead lock when two threads (with the same parent thread) are exiting
at the same time and a GC synchronization is requested by one. Because the
location of the request the `children_mutex' was already taken by the one
requesting the GC synchronization, leaving the other thread blocked on trying
to acquire the mutex. But the GC synchronization did not know about it and
therefore waited indefinitely. Shown by eweasel test exec120. We now mark
the thread blocked just before acquiring the mutex.

FIXME: we moved the call to eif_wean before acquiring the mutex because it
can be done at any time and also it removes a potential dead lock if the
call to eif_wean if it triggers a GC synchronization. Moreover there is
a bug as henter/eif_wean are done per thread and not on a globally scope
therefore we insert an incorrect location to the free_list, but it does
not matter as we are quitting the thread. The real issue is that the parent
thread `hec_saved' is not freed of a location although we put a NULL reference
at the location.


Revision 38455 - Directory Listing
Modified Wed Aug 13 19:45:32 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a dead lock issue (strangely only found on unix platforms) when using
the `eif_gc_set_mutex' and `eif_gc_gsx_mutex'. This happens because if one
thread really locks, then the thread was still marked as `running'. A consequence
is that if another thread tries to perform a GC synchronization, it will wait
until it is blocked, but because it is already blocked we were dead locking.
Now before each call to `lock' we mark the thread as blocked, therefore the
GC will not wait for them. Once we get the lock, we mark the thread as running
so that other GC synchronizations can be performed.


Revision 38450 - Directory Listing
Modified Wed Aug 13 18:17:35 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Ensured that prototypes of `find_referers' and `find_instance_of' matche
  the signature in `traverse.c'


Revision 38446 - Directory Listing
Modified Wed Aug 13 17:06:32 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Benchmark show that having it set to 20 for the compiler enables to have
a better performance (about 20s gain on 1126s time of execution). This is
minimal, but the memory usage when coalesc is done is much better.


Revision 38445 - Directory Listing
Modified Wed Aug 13 01:13:19 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Enabled `find_scavenge_spaces' in multithreaded mode and therefore enabled
  `find_to_space'. There was no reason to prevent it. It is done in a safe
  way where all threads are blocked.


Revision 38444 - Directory Listing
Modified Wed Aug 13 01:11:43 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect C code for non-multithreaded runtime for definition of
`eif_rt_internal_xmalloc' (we were transform an extern definition into
a static one). The static one is only for multithreaded mode.


Revision 38434 - Directory Listing
Modified Tue Aug 12 23:05:05 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Renamed `xfree', `xmalloc', `xcalloc' and `split_block' into `eif_rt_xfree',
  `eif_rt_xmalloc', `eif_rt_xcalloc' and `eif_rt_split_block' instead of
  relying on #define to do this renaming.
Added `gc_thread_status' macro in `rt_globals.h' so no need to have to write
  `rt_globals->gc_thread_status' anymore, `gc_thread_status' is enough.
Added `eif_rt_internal_xmalloc' which is the same as `eif_rt_xmalloc' in
  non-threaded application, but in multithreaded application, it is not
  synchronized whereas `eif_rt_xmalloc' is. Because `eif_rt_xmalloc' is
  now synchronized, we removed the protection that we surrounding each
  calls to `eif_rt_xmalloc' and if we still need the protection, then we
  call `eif_rt_internal_xmalloc'.


Revision 38433 - Directory Listing
Modified Tue Aug 12 23:01:20 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added `gc_thread_status' macro in `rt_globals.h' so no need to have to write
  `rt_globals->gc_thread_status' anymore, `gc_thread_status' is enough.
Added `gc_thread_collection_count' which is used to find out many times
  `eif_synchronize_gc' has been called, so that the last call to
  `eif_unsynchronize_gc' matching that number unlocks the `eif_gc_mutex' mutex.


Revision 38432 - Directory Listing
Modified Tue Aug 12 23:00:06 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Renamed `xfree', `xmalloc', `xcalloc' and `split_block' into `eif_rt_xfree',
  `eif_rt_xmalloc', `eif_rt_xcalloc' and `eif_rt_split_block' instead of
  relying on #define to do this renaming.
Fixed `eif_synchronize_gc' and `eif_unsynchronized_gc' so that they for each time
  `eif_synchronize_gc' is called, `eif_unsynchronized_gc' is called. The first call
  to `eif_synchronize_gc' locks the `eif_gc_mutex' and the last call to
  `eif_unsynchronize_gc' will unlock the mutex.
Added `gc_thread_status' macro in `rt_globals.h' so no need to have to write
  `rt_globals->gc_thread_status' anymore, `gc_thread_status' is enough.


Revision 38431 - Directory Listing
Modified Tue Aug 12 22:47:03 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Renamed `xfree', `xmalloc', `xcalloc' and `split_block' into `eif_rt_xfree',
  `eif_rt_xmalloc', `eif_rt_xcalloc' and `eif_rt_split_block' instead of
  relying on #define to do this renaming.


Revision 38430 - Directory Listing
Modified Tue Aug 12 22:16:00 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Renamed `xfree', `xmalloc', `xcalloc' and `split_block' into `eif_rt_xfree',
  `eif_rt_xmalloc', `eif_rt_xcalloc' and `eif_rt_split_block' instead of
  relying on #define to do this renaming.


Revision 38429 - Directory Listing
Modified Tue Aug 12 22:09:07 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Renamed `xfree', `xmalloc', `xcalloc' and `split_block' into `eif_rt_xfree',
  `eif_rt_xmalloc', `eif_rt_xcalloc' and `eif_rt_split_block' instead of
  relying on #define to do this renaming.
Removed `#ifdef TEST' statement as it has already been moved to the `tests/bits_test.c'
  file.


Revision 38425 - Directory Listing
Modified Tue Aug 12 03:05:37 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Made code of `option.c' thread safe. That is to say that `tracing' and `profiling'
are now made on a per thread basis.
For tracing, we display thread id before each output. This can easily be
  filtered by reading stderr to see what the tracing is for each thread.
For profiling, we store the result of profiling into a file `profinfo_THREADID'
  instead of just `profinfo'. That way in EiffelStudio we select which thread
  results we want to see the profiling output. As a consequence, `initprf'
  and `exitprf' is now called for all threads.


Revision 38424 - Directory Listing
Modified Tue Aug 12 03:01:54 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Removed useless usage of local variable `last_name' of `map_types'.


Revision 38418 - Directory Listing
Modified Mon Aug 11 18:59:27 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed compilation error on True64 in `esigvec', not detected before because
this was the first platform that had `HAS_SIGVEC defined.


Revision 38414 - Directory Listing
Modified Mon Aug 11 05:56:17 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect definition of `RT_GET_CONTEXT' for Solaris platform.


Revision 38413 - Directory Listing
Modified Mon Aug 11 02:37:33 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed missing export status for `call_disp'.


Revision 38412 - Directory Listing
Modified Mon Aug 11 02:36:13 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed C warning for non-declaration of `call_disp' in Boehm GC setting.


Revision 38411 - Directory Listing
Modified Mon Aug 11 02:28:49 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a typo in `#ifdef ISE_GC' `#endif' statement, we were excluding to
much stuff for non-ISE GC causing many warnings from the C compiler.


Revision 38410 - Directory Listing
Modified Mon Aug 11 02:28:03 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added missing `#ifdef ISE_GC' `#endif' statement to remove recently added
stuff which only makes sense for the ISE GC.


Revision 38399 - Directory Listing
Modified Mon Aug 11 01:26:46 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `fixme' on all data members used in `memory.c'. It required a big
change at the level of the MEMORY, MEM_INFO and GC_INFO class so that the
data is kept within instances of those classes instead of being held as
global variables.
Protected updated are done through newly introduced mutex `eif_memory_mutex'.


Revision 38373 - Directory Listing
Modified Thu Aug 7 02:21:47 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Made `cid_array' from `gen_conf.c' a private per thread data of `rt_globals.h'
  so that it is now thread safe.
In the same time, separated the public features from the shared/private
  ones with the creation of `rt_gen_conf.h'.


Revision 38371 - Directory Listing
Modified Thu Aug 7 01:15:48 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed compilation issue in multithreaded mode (mostly resolving name conflic).


Revision 38370 - Directory Listing
Modified Thu Aug 7 01:13:00 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Not used anymore since we have PACKED_BOOLEAN now in the compiler which does
the same thing and in Eiffel.


Revision 38369 - Directory Listing
Modified Thu Aug 7 01:12:30 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Made compilable although we are not yet using this development version.


Revision 38366 - Directory Listing
Modified Thu Aug 7 00:51:40 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed creation issue of `eif_except_lock' so that it is created in main
thread. Now it is created by `eif_thread.c' and used in `except.c'.
Updated comments of `eif_except_lock'.


Revision 38364 - Directory Listing
Modified Thu Aug 7 00:37:21 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added inclusion of `idrs' directory as this is now used to compile
properly `rt_globals.h' which references IDRF struct definition defined
in `idrs'.


Revision 38363 - Directory Listing
Modified Thu Aug 7 00:27:19 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Made store/retrieve multithreaded safe by putting global variables into
  the private per thread data `rt_globals'.
Made `copy.c' thread safe by putting `hclone' in `rt_globals'.
Made `equal.c' thread safe by putting `eif_equality_table' (formerly table,
  renamed because of name conflict) in `rt_globals.
Added initialization routine `eif_xxx_thread_init' in C modules which
  requires an initial value which is different from the default value.

During this process renamed some variables that were conflicting with some
of the variables used in `rt_globals.h'.


Revision 38362 - Directory Listing
Modified Wed Aug 6 23:46:44 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Reset values of `hash' structure in `hash_free'.


Revision 38359 - Directory Listing
Modified Wed Aug 6 23:25:41 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added `idrs' directory as we are using its header files to define IDRF
used in new private `rt_globals' structure.


Revision 38358 - Directory Listing
Modified Wed Aug 6 23:22:42 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Updated documentation to recent changes which moved some data from the
per thread data zone to the private per thread data zone.


Revision 38356 - Directory Listing
Modified Wed Aug 6 23:18:33 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Renamed `cidarr' into `a_cidarr' as `cidarr' is also part of the private
per thread data structure which avoids a C compilation error in multithreaded mode.


Revision 38354 - Directory Listing
Modified Wed Aug 6 23:13:11 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Renamed `idrf' into `app_idrf' to avoid conflicts with `run_idr.c' `idrf'
variable when compiled in multithreaded mode (as it is now defined in
rt_globals.h).


Revision 38352 - Directory Listing
Modified Wed Aug 6 23:10:18 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Instead of having `-W3' defined everywhere, we use `$warning_level' instead
so that we can easily change the level when needed.


Revision 38335 - Directory Listing
Modified Wed Aug 6 01:35:58 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Removed synchronization code as this is now done through the EiffelThread
library which references those externals through the `blocking' keyword
which makes the compiler to generate the protection automatically.


Revision 38321 - Directory Listing
Modified Tue Aug 5 22:11:38 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug introduced in previous integration where we forgot to increment `ip'
therefore reading the same area over and over.


Revision 38319 - Directory Listing
Modified Tue Aug 5 21:22:46 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Do not force a break into debugger when we are getting a EN_RES exception.
Allowing it was causing EiffelStudio to freeze (to reproduce simply introduce
a class which is not part of the universe and try to compile the system
under the debugger, after raising the exception the first time, the second
time it is stuck in `recompile' from WORKBENCH_I).


Revision 38317 - Directory Listing
Modified Tue Aug 5 18:21:16 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
It was incorrect to make `eif_lmalloc.h' a private header files. Some people
might be using the `eif_xalloc' routines in their code and possibly with CECIL.


Revision 38316 - Directory Listing
Modified Tue Aug 5 18:14:58 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
It was incorrect to make `eif_lmalloc.h' a private header files. Some people
might be using the `eif_xalloc' routines in their code and possibly with CECIL.


Revision 38313 - Directory Listing
Modified Tue Aug 5 16:43:04 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect ( ? : ) expression for EIF_THR_YIELD on Windows. It was rejected
by the Borland C compiler because it had a void return type which does not seem
to be valid C.


Revision 38312 - Directory Listing
Modified Tue Aug 5 04:41:20 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Moved back to public header file some constants definitions (but the goal
would be to put them back to the private header file) which were used in
`storable.c' from the EiffelNet C library.


Revision 38310 - Directory Listing
Modified Tue Aug 5 02:10:10 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition of `i_time' as it is defined on those Linux platforms.


Revision 38309 - Directory Listing
Modified Tue Aug 5 01:57:43 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Separated private or shared data that was hold in `eif_globals' into
`rt_globals', a new per thread structure that holds private or shared
data of the runtime. That way generated code only use `eif_globals'
and runtime uses `rt_globals' or `eif_globals' depending on the need.

This will ease future work on the runtime by not exposing critical data
structure of the runtime to the world and enabling us, the developers, to
quickly see if what we change has an impact on the external world.

In the process fix some export status and documentation that were not
correct (eg was shared instead of public, or was public but was in fact
private)


Revision 38291 - Directory Listing
Modified Mon Aug 4 17:51:12 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added use of `$warning_level' so that runtime is compiled with maximum
level warnings for the targetted platform.


Revision 38290 - Directory Listing
Modified Mon Aug 4 17:45:12 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added `warning_level' so that runtime is always compiled with maximum warnings.


Revision 38289 - Directory Listing
Modified Mon Aug 4 17:36:16 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added inclusion for `time.h' needed to define `time'.


Revision 38288 - Directory Listing
Modified Mon Aug 4 17:35:38 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added inclusion for `string.h' needed to define `memcpy'.


Revision 38287 - Directory Listing
Modified Mon Aug 4 17:13:30 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed C compiler warning for convertion between char and int.


Revision 38286 - Directory Listing
Modified Mon Aug 4 17:13:08 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed missing or incorrect header file inclusion.


Revision 38285 - Directory Listing
Modified Mon Aug 4 17:09:35 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed cast type issue in subscript.


Revision 38284 - Directory Listing
Modified Mon Aug 4 16:38:50 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
On unix, we need definition from `rt_dir.h'.


Revision 38283 - Directory Listing
Modified Mon Aug 4 16:38:10 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Since now `signal.h' is not included anymore in `eif_constants.h' code was
not compiling anymore. Simply added inclusion of `signal.h' to make it compile.


Revision 38282 - Directory Listing
Modified Mon Aug 4 16:19:05 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Moved private data of public header files `eif_*.h' into private header
files `rt_*.h' for stuff that was only used to compile the runtime, not
for stuff that is needed by generated C code.
It hides most of our implementation and therefore protects our IP.


Revision 38278 - Directory Listing
Modified Sat Aug 2 00:02:40 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added missing `eif_integer_function' macro (mistake from previous integration)


Revision 38272 - Directory Listing
Modified Fri Aug 1 16:40:52 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added missing definition of `rmake_header' needed to compile EiffelNet C code.


Revision 38271 - Directory Listing
Modified Fri Aug 1 02:24:59 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Moved SCOOP header files from `run-time' into `concurrency' subdirectory.

Added Files:
	concurrency/eif_bitmask.h concurrency/eif_concurnet.h
	concurrency/eif_constant.h concurrency/eif_curerrmsg.h
	concurrency/eif_curextern.h concurrency/eif_curextf.h
	concurrency/eif_curextg.h concurrency/eif_curglb.h
	concurrency/eif_curserver.h concurrency/eif_net.h
Removed Files:
	eif_bitmask.h eif_concurnet.h eif_constant.h eif_curerrmsg.h
	eif_curextern.h eif_curextf.h eif_curextg.h eif_curglb.h
	eif_curserver.h eif_net.h


Revision 38270 - Directory Listing
Modified Fri Aug 1 02:22:49 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed `eif_argv.h' to include only public declaration. Moved runtime private
one in private header `rt_argv.h'.
Fixed declaration of `eif_argc' and `eif_argv' to be `RT_LNK' as they are public.


Revision 38269 - Directory Listing
Modified Fri Aug 1 01:18:05 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Cosmetics. Improved code by using macros instead of duplicating code.


Revision 38267 - Directory Listing
Modified Fri Aug 1 00:33:25 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Use private header files instead to get access to shared runtime definition.
Moved definition from `eif_globals.h' to respective .h file, move private
stuff into private header files.


Revision 38266 - Directory Listing
Modified Fri Aug 1 00:32:14 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Use private header files instead to get access to shared runtime definition.
Fixed incorrect export status of `hec_saved' which is shared, and added fixme.


Revision 38265 - Directory Listing
Modified Fri Aug 1 00:31:38 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Use private header files instead to get access to shared runtime definition.
Fixed incorrect export status of `eit_trace' which is shared, not public and added a fixme.


Revision 38264 - Directory Listing
Modified Fri Aug 1 00:30:51 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Use private header files instead to get access to shared runtime definition.
Fixed incorrect export status for `d_data' and `cop_stack' and updated documentation
  and fixme.


Revision 38249 - Directory Listing
Modified Thu Jul 31 17:14:04 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Removed fix for windows as it is breaking too much code.


Revision 38234 - Directory Listing
Modified Wed Jul 30 04:54:46 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `is_extern' argument for melted/workbench code as now when calling
a C external we always pass `Current' as first argument. This enabled us
to ensure that assertions on externals are properly evaluated.


Revision 38227 - Directory Listing
Modified Tue Jul 29 01:04:13 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Reimplemented `eif_xxx_function' as macros using the `eifref' routine. In the
process addded the missing type definition of EIF_INTEGER_XX_FUNCTION and routines
`eif_integer_xx_function' for the new integer types.
Reimplemented obsolete macros using the `eif_xxx_function'.


Revision 38226 - Directory Listing
Modified Tue Jul 29 01:01:59 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Removed useless routines (eifproc, eifchar, eiflong, ...) as they can
be implemented in `eif_cecil.h' using a macro and using `eifref'.


Revision 38225 - Directory Listing
Modified Tue Jul 29 00:59:07 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed issue in `eif_set_directory' on Windows where if previous character
was not `\' we append it before appending directory name.


Revision 38201 - Directory Listing
Modified Fri Jul 25 20:51:08 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed hanging issue in EiffelStudio while developping multithreaded application
 that raises exception (assertion violation or others), then the debugger will
 get confuse if you get this exception while you are debugging in another thread.
 It should wait on the debugging mutex before launching the exception to
 EiffelStudio.


Revision 38181 - Directory Listing
Modified Thu Jul 24 19:00:16 2003 UTC (16 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Moved debugging code from `commands.c' to `ewb_init.c'. Doing this enable
a compilation from scratch without modifing `commands.c' of the command
line compiler.


Revision 38169 - Directory Listing
Modified Wed Jul 23 03:03:07 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed signature according to the Eiffel style (since they are called from
Eiffel libraries only)


Revision 38168 - Directory Listing
Modified Wed Jul 23 03:01:38 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug where `eif_chunk_size', `eif_scavenge_size' and `eif_stack_chunk'
could be set to a value which was not ALIGNMAX aligned. See `malloc.c' for
documentation.


Revision 38167 - Directory Listing
Modified Wed Jul 23 03:00:50 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Moved definition of ALIGNMAX from `malloc.c' to `rt_malloc.h' because it is
now used by `main.c' to properly initialize the value of `eif_chunk_size',
`eif_scavenge_size' and `eif_stack_chunk' so that they are multiple of ALIGNMAX.
Updated associated documentation accordingly.


Revision 38166 - Directory Listing
Modified Wed Jul 23 02:58:30 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Moved definition of ALIGNMAX from `malloc.c' to `rt_malloc.h' because it is
now used by `main.c' to properly initialize the value of `eif_chunk_size',
`eif_scavenge_size' and `eif_stack_chunk' so that they are multiple of ALIGNMAX.


Revision 38061 - Directory Listing
Modified Wed Jul 16 18:01:42 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added calls to EIF_ENTER_C and EIF_EXIT_C in `join_all' as this is a blocking
call. Not doing it was freezing the GC when trying to do a collection.


Revision 38060 - Directory Listing
Modified Wed Jul 16 05:31:59 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Moved declaration of `set_buffer_size' to public header file.


Revision 38059 - Directory Listing
Modified Wed Jul 16 02:17:34 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed very strange bug which should have been discovered a long time ago. The
  melted_file was open in text mode under Windows (for which it matters
  as it converts CR-LF into a single LF character, plus it does a special
  handling of the ^Z (ASCII code 26 which seems to be the eof for a text
  file on Windows) character (VC98\CRT\SRC\READ.C line 186).
  Anyway the melted file is not a text file and should have always been open
  in binary format as it was already done in our 2 utilities to read byte
  code (bytedump.c and meltdump.c).


Revision 38057 - Directory Listing
Modified Tue Jul 15 21:42:57 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Restored `independent_free_store' and `basic_general_free_store' since needed
  by EiffelNet C code.
Restored public status of some externals as they are needed by EiffelNet.


Revision 38053 - Directory Listing
Modified Tue Jul 15 18:58:07 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed typo in XML documentation.


Revision 38052 - Directory Listing
Modified Tue Jul 15 02:31:09 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML like comments for attributes used in runtimes. They are extracted
to produce nice documentation of run-time.
Updated export status of variables from public to either shared or private
as this is how they are used.
Moved shared declaration from `eif_store.h' into `rt_store.h' or `rt_retrieve.h'.


Revision 38051 - Directory Listing
Modified Tue Jul 15 02:28:54 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Moved declaration of `end_of_buffer' from `store.c' into `retrieve.c' as it
is mostly used there.


Revision 38050 - Directory Listing
Modified Tue Jul 15 02:27:54 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Used private header to access shared variables that are not exported anymore
in public header.


Revision 38046 - Directory Listing
Modified Tue Jul 15 00:06:20 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added empty documentation XML tags.


Revision 38014 - Directory Listing
Modified Fri Jul 11 21:37:36 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Use same trick as in `finish_freezing' to use all possible CPUs of a machine
to perform C compilation.


Revision 38006 - Directory Listing
Modified Fri Jul 11 05:21:52 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML like comments for attributes used in runtimes. They are extracted
to produce nice documentation of run-time.


Revision 38005 - Directory Listing
Modified Fri Jul 11 05:20:30 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added inclusion of `rt_retrieve.h' to access to shared declaration of `rt_kind_version'.


Revision 38004 - Directory Listing
Modified Fri Jul 11 05:17:44 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Moved shared declaration of `rt_kind_version' into private header file `rt_retrieve.h'.


Revision 38003 - Directory Listing
Modified Fri Jul 11 05:16:17 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Moved `shared' declaration of the runtime to private include directory.


Revision 37897 - Directory Listing
Modified Sat Jun 28 08:48:56 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML doc content.
Use `rt_struct.h' to access workbench shared runtime data structures.


Revision 37896 - Directory Listing
Modified Sat Jun 28 08:48:13 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML doc content.


Revision 37895 - Directory Listing
Modified Sat Jun 28 08:46:40 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML doc content.
Renamed `fil' into more explicit name `melted_file'.
Moved public data `melt_count' as a local variable of `update'.
Use `rt_struct.h' to access workbench shared runtime data structures.


Revision 37894 - Directory Listing
Modified Sat Jun 28 08:44:59 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML doc content.
Use `rt_struct.h' to access workbench shared runtime data structures.
Remove useless cast to int16 when using egc_any_dtype.


Revision 37893 - Directory Listing
Modified Sat Jun 28 08:43:56 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Now use `rt_struct.h' to access workbench shared runtime data structures.


Revision 37892 - Directory Listing
Modified Sat Jun 28 08:43:16 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Removed declaration of `ename' since it is now replaced by `egc_system_name'.


Revision 37891 - Directory Listing
Modified Sat Jun 28 08:42:44 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML doc content.


Revision 37890 - Directory Listing
Modified Sat Jun 28 08:42:14 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML doc content.
Cosmetics for VMS code (replaced spaces by tabs)


Revision 37889 - Directory Listing
Modified Sat Jun 28 08:38:10 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML doc content.
Use `rt_struct.h' to access shared workbench data structures.


Revision 37888 - Directory Listing
Modified Sat Jun 28 08:37:33 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML doc content.
Precised export status of some variables which were public but should not.


Revision 37887 - Directory Listing
Modified Sat Jun 28 08:36:42 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML doc content.
Use `rt_object_id.h' since it now includes shared definition of `object_id_stack'.


Revision 37886 - Directory Listing
Modified Sat Jun 28 08:36:05 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML doc content.


Revision 37885 - Directory Listing
Modified Sat Jun 28 08:35:00 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML doc content.
Renamed `inconsistency' into `RT_INCONSISTENCY_MSG' to emphasize this is used
  as a constant.


Revision 37884 - Directory Listing
Modified Sat Jun 28 08:33:22 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML doc content.
Removed `ename' and its initialization, it is replaced now by `egc_system_name'
  initialized in `eplug.c'.
Removed `co_table' since this is not used anymore since introduction of generic
  conformance.


Revision 37883 - Directory Listing
Modified Sat Jun 28 08:30:21 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML doc content.
Added `rt_struct.h' to access workbench data structures.
Renamed `botched' and `unknown_type' into `RT_BOTCHED_MSG' and `RT_UNKNOWN_TYPE_MSG'
  to emphasize they are treated like constants.


Revision 37882 - Directory Listing
Modified Sat Jun 28 08:28:02 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Use `rt_struct.h' to access workbench data structures.


Revision 37881 - Directory Listing
Modified Sat Jun 28 08:27:35 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML doc content.


Revision 37880 - Directory Listing
Modified Sat Jun 28 08:26:48 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML doc content.
Change `static' into `rt_private' declaration.


Revision 37879 - Directory Listing
Modified Sat Jun 28 08:25:45 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML doc content.
Added run-time protection in multithreaded for `partial_scavenging'.
Used `rt_object_id.h' to access `object_id_stack' which is now `shared' (before
  it was public).


Revision 37878 - Directory Listing
Modified Sat Jun 28 07:49:30 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Moved shared runtime variables declaration from `eif_struct.h' to `rt_struct.h'.


Revision 37877 - Directory Listing
Modified Sat Jun 28 07:48:56 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
New script which extracts all the XML doc content of the runtime to generate
one big XML file which can be used for later processing.


Revision 37876 - Directory Listing
Modified Sat Jun 28 07:45:34 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Reformatted XML doc content.
Replace usage of `ename' by `egc_system_name' since we got rid of `ename'.


Revision 37875 - Directory Listing
Modified Sat Jun 28 07:43:55 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Reformatted XML doc content.
Use `rt_struct.h' instead of `eif_struct.h' to access runtime shared variables
to permit workbench calls.


Revision 37874 - Directory Listing
Modified Sat Jun 28 07:42:54 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Reformatted XML doc content.


Revision 37873 - Directory Listing
Modified Sat Jun 28 07:42:14 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Moved shared runtime variable declaration to `rt_struct.h'.


Revision 37872 - Directory Listing
Modified Sat Jun 28 07:38:24 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Made `egc_any_dtype' of type `int16'.


Revision 37871 - Directory Listing
Modified Sat Jun 28 07:37:31 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Reformatted XML doc content.
Added `rt_public' prefix to all variables as it is important to know for
  a runtime developer the export status of variables.


Revision 37870 - Directory Listing
Modified Sat Jun 28 07:36:34 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Removed declaration of `init_data' since it is only privately by `option.c'.


Revision 37869 - Directory Listing
Modified Sat Jun 28 07:35:41 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Moved shared data from `eif_object_id.h' to current.


Revision 37868 - Directory Listing
Modified Sat Jun 28 07:35:08 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Moved shared object_id data to a private header file `rt_object_id.h'.


Revision 37867 - Directory Listing
Modified Sat Jun 28 07:34:25 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Reformated XML doc content.
Use `rt_struct.h' to access shared runtime data for melted informations.


Revision 37866 - Directory Listing
Modified Sat Jun 28 07:33:13 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Reformated XML doc content.


Revision 37865 - Directory Listing
Modified Sat Jun 28 07:32:40 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Reformated XML doc content.
Use `rt_struct.h' to access to shared data of runtime for melted data.


Revision 37864 - Directory Listing
Modified Sat Jun 28 07:31:40 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Reformatted XML doc content.


Revision 37863 - Directory Listing
Modified Sat Jun 28 07:30:59 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Replaced usage of `ename' by `egc_system_name' which is initialized by the
compiler (rather than computed by run-time as it was the case for `ename').


Revision 37862 - Directory Listing
Modified Sat Jun 28 07:29:28 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
We do not use `ename' anymore, it is replaced by `egc_system_name'.


Revision 37861 - Directory Listing
Modified Sat Jun 28 07:29:07 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Use private header file `rt_struct.h' to access some melted information.


Revision 37804 - Directory Listing
Modified Thu Jun 26 20:16:54 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Removed C compilation warning "missing braces around initializer"


Revision 37803 - Directory Listing
Modified Thu Jun 26 20:07:40 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed multi-line macro which declares a new local variable as block.


Revision 37802 - Directory Listing
Modified Thu Jun 26 20:04:25 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed macro definition GC_THREAD_PROTECT(x) to not include the () which could
cause a syntax error on some platforms where x expands into a multiline expression.


Revision 37798 - Directory Listing
Modified Wed Jun 25 20:58:15 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Used `rt_private' convention for static members.


Revision 37797 - Directory Listing
Modified Wed Jun 25 14:19:11 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
New thread safe synchronization for GC cycle:
- we now block all threads while one is collecting, before some threads could
  be running while a thread was collecting because strong synchronization was
  not put in place. This is now done through calls to `eif_synchronize_gc' and
  `eif_unsynchronize_gc'. The thread who requested a GC cycle will wait until
  all threads are not marked EIF_THREAD_RUNNING, i.e. they can be either blocked,
  dying, attempting to perform a GC collection. Each thread hold its status in
  new member `gc_thread_status' of `eif_globals'. We also have a new list of
  all `eif_globals' stored in `eif_globals_list' to access this status from the
  thread who requested a GC cycle.
- Fixed thread safe bug in insertion to various `_set' list. Because two threads
  could insert at the same time, the content was corrupted. This fixes most
  of the problem we have seen with multithreaded application even if we did not
  have a strong synchronization (see first point above).
- Added `EIF_ENTER_EIFFEL', `EIF_EXIT_EIFFEL', `EIF_ENTER_C' and `EIF_EXIT_C'
  to be used when either calling blocking C code from Eiffel, or calling
  Eiffel code from a blocking C code. This is needed otherwise the GC will not
  properly synchronize and there will be a dead lock. This is used for the
  routines of the EiffelThreads blocking routines such as `MUTEX.lock',....

Added support for THR_YIELD on Windows.

Modified Files:
	eif_cecil.h eif_globals.h eif_macros.h eif_threads.c garcol.c
	malloc.c include/rt_garcol.h include/rt_macros.h
	include/rt_malloc.h include/rt_threads.h include/rt_types.h


Revision 37794 - Directory Listing
Modified Tue Jun 24 13:50:24 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML like comments for attributes used in runtimes. They are extracted
to produce nice documentation of run-time.
However I've just started here as they are quite a lot. I'll continue this
one when I'm done with the other .c files.


Revision 37793 - Directory Listing
Modified Tue Jun 24 13:29:22 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition of `ise_printf' to be used to put a breakpoint when
an assertion violation occurs.


Revision 37792 - Directory Listing
Modified Tue Jun 24 13:24:31 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added `ise_printf' extern definition. To be used in replacement of `printf'
when we want to put a breakpoint in an assertion violation. It is defined
in `main.c'.


Revision 37791 - Directory Listing
Modified Tue Jun 24 13:22:38 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed C warning.


Revision 37790 - Directory Listing
Modified Tue Jun 24 12:45:09 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML like comments for attributes used in runtimes. They are extracted
to produce nice documentation of run-time.
Renamed global variable used as #define in upper case letters. Merged constants
definition of `retried' and `cur_retried' as they were almost used the same
way.


Revision 37789 - Directory Listing
Modified Tue Jun 24 12:33:13 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML like comments for attributes used in runtimes. They are extracted
to produce nice documentation of run-time.


Revision 37788 - Directory Listing
Modified Tue Jun 24 12:23:33 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML like comments for attributes used in runtimes. They are extracted
to produce nice documentation of run-time.
Moved attribute declaration together.


Revision 37787 - Directory Listing
Modified Tue Jun 24 12:05:25 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added XML like comments for attributes used in runtimes. They are extracted
to produce nice documentation of run-time.


Revision 37777 - Directory Listing
Modified Mon Jun 23 14:02:20 2003 UTC (16 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Cosmetics. Defined `magic' as macro `MAGIC' on VMS.


Revision 37751 - Directory Listing
Modified Sat Jun 14 19:02:56 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Replaced private member `error' by a macro definition.


Revision 37529 - Directory Listing
Modified Tue Jun 3 20:45:16 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed `rout_tuple_item_copy' and `eif_put_reference_item' to force a cast
to EIF_REFERENCE as if code using it compiled in C++ mode will not perform
automatic conversion of EIF_POINTER to EIF_REFERENCE in generated code.


Revision 37521 - Directory Listing
Modified Tue Jun 3 18:09:16 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Defined `EIF_SOLARIS' for Solaris platform. This is used to implement
a workaround of `file_exists' and `file_path_exists' to handle existence
of large files on Solaris (needed by David Hollenberg MOSIS project).


Revision 37508 - Directory Listing
Modified Mon Jun 2 23:10:42 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Added triggering of `mismatch' when retrieving an old TUPLE object (with no
EO_TUPLE flag) in a system which supports new TUPLE specificaiton (with
EO_TUPLE flag).


Revision 37478 - Directory Listing
Modified Fri May 30 16:31:59 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect specification of `tuple_malloc_specific' which prevented
compilation of runtime as a DLL on Windows.


Revision 37448 - Directory Listing
Modified Thu May 29 22:31:06 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
New agent implementations (see commit on ROUTINE class for more details):
updated interpreter to take proper number of arguments for agent creation.


Revision 37447 - Directory Listing
Modified Thu May 29 22:30:25 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
New agent implementations (see commit on ROUTINE class for more details):
added implementation of `rout_obj_create2' to create instance of ROUTINE.


Revision 37446 - Directory Listing
Modified Thu May 29 22:30:01 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
New agent implementations (see commit on ROUTINE class for more details):
added `rout_obj_create2', `rout_obj_call_agent' and `rout_tuple_item_copy'
needed for new implementation to create, perform call and fill tuple with
open operands.


Revision 37445 - Directory Listing
Modified Thu May 29 22:27:21 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
New agent implementations (see commit on ROUTINE class for more details):
added RTLNR2 which is an equivalent of RTLNR. We keep both at the moment
so that our new runtime can be used by older version of the compiler.


Revision 37441 - Directory Listing
Modified Thu May 29 17:38:23 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in new TUPLE implementation in `refers_new_object'. Because we
forgot to handle new TUPLE implementation specifically, we were doing a normal
pass as if TUPLE was a SPECIAL of reference which is not the case, it has
to do a pass on only the reference item of TUPLE (fixed eweasel bug fixed125)


Revision 37415 - Directory Listing
Modified Wed May 28 01:01:49 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
New store/retrieve adapted to new TUPLE implementation. TUPLE are now stored
and retrieved in a special way which is tight to the new TUPLE implementation.


Revision 37412 - Directory Listing
Modified Tue May 27 23:56:52 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Added `EIF_INTEGER_32_CODE' as synonym of `EIF_INTEGER_CODE'.
Added shared routines `eif_gen_count_with_dftype' and `eif_gen_typecode_with_dftype'.


Revision 37411 - Directory Listing
Modified Tue May 27 23:56:06 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Added 2 new opcodes for new TUPLE implementation in melted code.


Revision 37410 - Directory Listing
Modified Tue May 27 23:55:26 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Updated traversal so that it traverses new TUPLE implementation too.


Revision 37409 - Directory Listing
Modified Tue May 27 23:53:38 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Updated comments of `sp_count' so that it takes into account TUPLE ojbect too.


Revision 37408 - Directory Listing
Modified Tue May 27 23:51:43 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
We are now displaying the full dynamic type insteand of just the class name
 for generic types.
Added `rec_twrite' to properly display tuple objects.
Made sure that unicode characters are displayed with the following format `U+XXXX'
  value.


Revision 37407 - Directory Listing
Modified Tue May 27 23:50:07 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Made sure that `arycpy' is not used for a TUPLE objects.


Revision 37406 - Directory Listing
Modified Tue May 27 23:49:31 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Added `tuple_malloc', `tuple_malloc_specific' for new TUPLE implementation.
  Newly created tuple object are marked with the EO_TUPLE flag and the `type'
  member of EIF_TYPED_ELEMENT properly initialized.
Added `smart_emalloc' for easy creation of objects which can be normal eiffel
  objects, or tuple objects.


Revision 37405 - Directory Listing
Modified Tue May 27 23:35:20 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Updated to new TUPLE implementation. Byte code sequence has now changed.
A manifest array is generated through BC_ARRAY or BC_PARRAY opcode, a
manifest tuple is generated through a BC_TUPLE or BC_PTUPLE opcode.
Use `RTLNSMART' instead of `RTLN' to create new object instances, as this one
will take care of creating normal objects and tuple objects.


Revision 37404 - Directory Listing
Modified Tue May 27 23:32:30 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Updated `ei_special' to only return `True' when it is a special object that is
not a TUPLE object.


Revision 37403 - Directory Listing
Modified Tue May 27 23:31:43 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Instead of always using an object to access to some information about
generic types, we have introduced `rt_shared' routines that uses a `dftype'
instead:
- eif_gen_count_with_dftype <-> eif_gen_count
- eif_gen_typecode_with_dftype <-> eif_gen_typecode

Removed specific CHECK statement in eif_gen_typecode as `eif_anc_id_map' might
not be computed.

Added `eif_tuple_is_atomic' and `eif_tuple_count' used to find out if a
tuple object is atomic (no references) and its count.


Revision 37402 - Directory Listing
Modified Tue May 27 23:28:50 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Updated marking procedures of garbage collector to take into account new
  TUPLE implementation. Since TUPLE objects are made of EIF_TYPED_ELEMENT,
  we only need to traverse references held in a TUPLE, not to traverse all
  the elements.


Revision 37401 - Directory Listing
Modified Tue May 27 23:26:53 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Updated for new TUPLE implementation.\
FIXME: I've noticed that we are comparing the `dynamic type' and not the
  `full dynamic type' of objects. I think we should be comparing the full
  dynamic type, but I decided not to do the change now, but later. This log
  is just to remind me or anyone else that it needs to be checked.


Revision 37400 - Directory Listing
Modified Tue May 27 23:24:56 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Added critical elements for new TUPLE implementation:
 - new type EIF_TYPED_ELEMENT: a TUPLE is made of EIF_TYPED_ELEMENT structure.
 - macros to access and set elements of a TUPLE.
 - added `rout_putXX' macros that are equivalent to `rout_obj_putXX' macros
   except that they do not take an object as parameter, but a proper value instance.


Revision 37399 - Directory Listing
Modified Tue May 27 23:22:08 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Added `tuple_malloc' and `tuple_malloc_specific' for handling new TUPLE
  implementation.
Added `smart_emalloc' used to create either a normal object (through emalloc)
  or a TUPLE object (through tuple_malloc)


Revision 37398 - Directory Listing
Modified Tue May 27 23:21:07 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Added new creation macros for handling new TUPLE objects implementation:
 - RTLNT, RTLNTS: create new tuple object
 - RTLNSMART: create a new object which can either be a normal object (allocated
     through emalloc) or a TUPLE object (allocated through tuple_malloc)
 - RTLNC: create a new object of the same type as given object.


Revision 37397 - Directory Listing
Modified Tue May 27 23:19:13 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Added `eif_tuple_count' and `eif_tuple_is_atomic' needed for new TUPLE
  implementation.


Revision 37396 - Directory Listing
Modified Tue May 27 23:18:35 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Renamed `EO_CREAT' into `EO_TUPLE'. This flag is now used to mark all TUPLE
  instances. By default a TUPLE instance has both EO_SPEC and EO_TUPLE,
  making TUPLE just a special case of SPECIAL.


Revision 37395 - Directory Listing
Modified Tue May 27 23:17:17 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Updated copying code to take into account new TUPLE implementation. Updated
  `eclone', `ecopy', `rdeepclone' and added `tuple_copy' for proper TUPLE
  copying.


Revision 37394 - Directory Listing
Modified Tue May 27 23:14:52 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Updated debugger code to take into account new TUPLE implementation. We now
 have a new routine `rec_tinspect' which inspects content of TUPLE objects.
 Communication protocol with `estudio' has slightly changed as in addition
 of the `is_special' flag, we are now passing the `is_tuple' flag too. Therefore
 a new compiler is needed to debug application linked with this new runtime.


Revision 37393 - Directory Listing
Modified Tue May 27 23:12:12 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Take into account new TUPLE implementation for storing.


Revision 37381 - Directory Listing
Modified Tue May 27 19:07:54 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Made SK_REAL a synonym of SK_FLOAT.


Revision 37380 - Directory Listing
Modified Tue May 27 18:55:45 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Added check verifications as we do not support yet the new EO_TUPLE flag.


Revision 37371 - Directory Listing
Modified Tue May 27 16:53:33 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect precondition of `sp_init'.


Revision 37336 - Directory Listing
Modified Wed May 21 21:19:16 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
New dispose optimization in GC. Instead of checking if a dispose routine
is defined in Disp_rout table for a given type each time we collect an object,
we use the spare flag EO_STOP (renamed now in EO_DISP) to mark the objects
which have a `dispose' routine. This is done during allocation of normal
eiffel objects (not for special) in `eif_set', this is done of course
by checking `Disp_rout', but it is only checked once.

The next optimization would be to have the compiler generate this information
whenever he knows about it.

Anyway this optimizations enables us to gain about 25s from 1191s down to 1167s.


Revision 37333 - Directory Listing
Modified Wed May 21 20:57:39 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Instead of passing `Current' to most of the generic conformance routine
we pass its full dynamic type `dftype' which is what we were doing inside
those routines before. It enables some optimization by the compiler
when `Dftype(Current)' is called many times in the same routine through
the local variable `dftype'.


Revision 37320 - Directory Listing
Modified Wed May 21 02:56:06 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed typo in postcondition of `mark_overflow_stack'.
Added missing comments of `mark_overflow_stack' mentioned in previous integration.


Revision 37319 - Directory Listing
Modified Wed May 21 02:24:36 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Made `EIF_MEMORY_OPTIMIZATION' enabled by default.
Moved EIF_GSZ_ALLOC_OPTIMIZATION definition to `rt_malloc.h' so that it is
  hidden from users.
Removed all conditional code related to `EIF_REM_SET_OPTIMIZATION' and therefore
  `eif_special_table.[ch]' file. This was not used and hard to maintain for
  future runtime modifications/enhancements. Moreover the optimization
  did not turn out to bring any performance gains which explains why we were
  not using it.
Removed all conditional code related to RECURSIVE_MARKING and ITERATIVE_MARKING
  and keep only HYBRID_MARKING. However HYBRID_MARKING has been improved so
  that it limits the recursion to only `overflow_stack_limit' recursive calls
  to the marking routine. To do that the marking is given the address of the object,
  rather than the object itself. Read comments of `mark_overflow_stack' for
  explanation on how we achieve this.
  Refactored code of `full_mark' and `mark_new_generation' so that most common
  code is merged into one routine `internal_marking'.
Added in `main.c' possibility to set the value of `overflow_stack_limit' through
  EIF_STACK_LIMIT environment variable. If not set we take the OVERFLOW_STACK_LIMIT
  value defined in `rt_garcol.h'.

List of modified files include:
	eif_confmagic.h run-time/Makefile-vxworks.SH
	run-time/Makefile.SH run-time/copy.c run-time/eif_threads.c
	run-time/garcol.c run-time/main.c run-time/makefile-win.sh
	run-time/malloc.c run-time/misc.c run-time/retrieve.c
	run-time/include/rt_garcol.h run-time/include/rt_malloc.h
	run-time/tests/malloc_test.c
List of removed files:
	run-time/eif_special_table.c run-time/eif_special_table.h


Revision 37275 - Directory Listing
Modified Thu May 15 17:00:26 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Enabled some part of `reclaim' in case of Boehm GC, so that we free some
  of our allocated memory related to runtime data structures.


Revision 37274 - Directory Listing
Modified Thu May 15 16:57:30 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
When using the Boehm GC, we enable calls to `GC_is_valid_displacement' when
assertions are enabled.


Revision 37233 - Directory Listing
Modified Sun May 11 22:59:59 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed typo in macro definition of EIF_LW_XX in generic case.


Revision 37231 - Directory Listing
Modified Sun May 11 18:51:16 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
In ISE_GC case, hector.c was not compiled because `ISE_GC' is defined through
`eif_portable.h' and not including it was therefore not including the code
of hector.c in ISE_GC mode. So moved `#ifdef ISE_GC' after the includes.


Revision 37230 - Directory Listing
Modified Sun May 11 18:34:14 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed typo: missing closing parenthesis.


Revision 37229 - Directory Listing
Modified Sun May 11 18:11:40 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Implemented EIF_LW_MUTEX_TYPE which are the same as EIF_MUTEX_TYPE when
  the platform does not support efficient mutex. So far only Windows and
  Solaris have efficient mutexes. On Windows this is called `CRITICAL_SECTION',
  on Solaris it is `lwp_mutex_t'.
  The only difference with EIF_MUTEX_TYPE is that I haven't implemented
  the TRY_LOCK because the Windows implementation of it only works on NT,
  so as long as we support Win9x I cannot do it. It is not a problem
  as we are not using this in our runtime.
  Also they are only used in our runtime, they cannot be used by the user.


Revision 37228 - Directory Listing
Modified Sun May 11 18:08:32 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Use EIF_LW_MUTEX_TYPE instead of EIF_MUTEX_TYPE as the LW one can be more
  efficient on certain platforms (e.g. Windows and Solaris).


Revision 37227 - Directory Listing
Modified Sun May 11 18:06:58 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Use EIF_LW_MUTEX_TYPE instead of EIF_MUTEX_TYPE as the LW one can be more
  efficient on certain platforms (e.g. Windows and Solaris). It is only
  used here for `eif_gc_mutex' as the other mutexes needs to be EIF_MUTEX_TYPE
  as they are used in conjonction with condition variable.


Revision 37226 - Directory Listing
Modified Sun May 11 00:47:10 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Adapted to Boehm GC: update of `hec_stack' is only required for ISE GC.


Revision 37225 - Directory Listing
Modified Sun May 11 00:46:25 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Adapted to Boehm GC: cleaned up header files to distinguish what is really
  needed for the ISE GC. Moved macro definition of `DISP' from garcol.c
  to rt_garcol.h since it is used by Boehm GC implementation in malloc.c.
  In `malloc.c' created `external_allocation' and `external_reallocation'
  which calls the Boehm GC facilities to allocate and reallocate memory.
Added in `eif_set' the setting of the thread id when THREAD_ID is defined.


Revision 37224 - Directory Listing
Modified Sat May 10 23:33:48 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Adapted to Boehm GC: made some macros meaningful in Boehm GC case. Removed
  some macros that were made for the non ISE_GC case (macros associated
  with once computation).
  Some macros should be empty, but because they are used in local declarations
  they cannot be empty as it will trigger a syntax error during C compilation
  of routines using them within other local declarations. We will
  need to revise those when compiler is updated to no generate semicolons
  for local declarations macros.


Revision 37223 - Directory Listing
Modified Sat May 10 23:28:25 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Adapted to Boehm GC: removed need for `hec_stack', `hec_saved', `free_stack',
  `loc_set' and `loc_stack'.


Revision 37222 - Directory Listing
Modified Sat May 10 23:27:02 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Adapted to Boehm GC: removed access to `hec_stack' which is useless in this
  case, and removed access to `g_data' since its content is initialized
  by our GC and in the Boehm GC is inapplicable.


Revision 37221 - Directory Listing
Modified Sat May 10 23:15:52 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Adapted to Boehm GC: no need for loc_set, loc_stack and hec_stack.


Revision 37220 - Directory Listing
Modified Sat May 10 23:13:56 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed C compilation warning on `old_sig' in `initsig' because it was not
  initialized and could be used initialized if `esigdefined' was not
  returning 1.


Revision 37219 - Directory Listing
Modified Sat May 10 23:07:47 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Adapted to Boehm GC: removed time computation of time spent in GC as we don't
  have access to it in Boehm.


Revision 37218 - Directory Listing
Modified Sat May 10 23:04:01 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Adapted to Boehm GC: removed reference to hec_stack, hec_saved, loc_set and
  loc_stack.


Revision 37217 - Directory Listing
Modified Sat May 10 23:02:57 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Adapted to Boehm GC collector: no need for loc_set, hec_stack, hec_saved
  and all the lists of those stack in the case of multithreaded application
  since they are only used by our moving GC, not by Boehm.


Revision 37216 - Directory Listing
Modified Sat May 10 22:59:36 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Adapted to Boehm GC. Call to `GC_register_displacement' to optimize
  performance of the Boehm GC collector since all our pointers will
  always point at OVERHEAD bytes from the allocated object through
  GC_malloc (we went from 130MB to 85MB by adding this call). Of
  course to be active the Boehm GC collector should be compiled without
  the ALL_INTERIOR_POINTERS option disabled.


Revision 37215 - Directory Listing
Modified Sat May 10 22:56:41 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Adapted our runtime to Boehm GC. Here removed need for `eget' and `eback'
  and the allocation of `loc_set' and `hec_stack'.


Revision 37214 - Directory Listing
Modified Sat May 10 18:18:32 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Added support for Boehm GC. At the moment we have limited support for features
  from MEMORY and GC_INFO class.


Revision 37213 - Directory Listing
Modified Sat May 10 18:15:53 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Added -DGCC_DLL for Boehm GC compilation as we are using it as a DLL so
  client code should have correct calling convention.


Revision 37212 - Directory Listing
Modified Sat May 10 17:56:17 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed typo, Boehm GC part should have been commented out.


Revision 37211 - Directory Listing
Modified Sat May 10 17:27:29 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Updated to work with a non moving GC such as Boehm GC. In this case all
  routines of `hector.c' are completely useless.


Revision 37210 - Directory Listing
Modified Sat May 10 16:09:28 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Added `gc.h' from Boehm GC distribution so that we can use it if we decide
to compile our runtime using the Boehm GC.


Revision 37209 - Directory Listing
Modified Sat May 10 16:06:43 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Added support for Boehm GC on Windows using VC++


Revision 37190 - Directory Listing
Modified Thu May 8 21:30:49 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed typo in definition of EIF_COND_WAIT_WITH_TIMEOUT.


Revision 37189 - Directory Listing
Modified Thu May 8 21:25:08 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Use `rt_except.h' instead of `eif_except.h' since we are using `rt_shared'
  routines only available to the runtime, not to the external world.


Revision 37188 - Directory Listing
Modified Thu May 8 21:07:01 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Use `rt_except.h' instead of `eif_except.h' since we are using `rt_shared'
  routines only available to the runtime, not to the external world.


Revision 37187 - Directory Listing
Modified Thu May 8 21:06:52 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Added routines that are only used by the runtime in `rt_except.h'.


Revision 37186 - Directory Listing
Modified Thu May 8 21:03:44 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Moved some routines declaration to `rt_except.h' as they were routine solely
  used by the runtime.


Revision 37185 - Directory Listing
Modified Thu May 8 21:02:06 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Use `rt_except.h' instead of `eif_except.h' since we are using `rt_shared'
  routines only available to the runtime, not to the external world.
Added call to `set_windows_exception_filter' on Windows which enables us
  to catch unhandled exceptions such as stack overflow, division by zero.


Revision 37184 - Directory Listing
Modified Thu May 8 20:59:35 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed signature of `st_alloc' since it did not match the implementation
  one in `garcol.c'.


Revision 37183 - Directory Listing
Modified Thu May 8 20:58:42 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Made some routines `rt_shared' since they are only used by the runtime.
Use for this purpose `rt_except.h' instead of `eif_except.h'.
Added specific code for Windows that enables us to catch among unhandled
  exceptions: stack overflow and division by zero.


Revision 37182 - Directory Listing
Modified Thu May 8 20:57:08 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Use `rt_except.h' instead of `eif_except.h' since we are using `rt_shared'
  routines only available to the runtime, not to the external world.


Revision 37178 - Directory Listing
Modified Thu May 8 17:45:21 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Previous protection code did not work in multithreaded mode since we need
  to call EIF_GET_CONTEXT.


Revision 37167 - Directory Listing
Modified Wed May 7 21:22:19 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a bug where `set_mismatch_correction' calling some Eiffel code could
trigger a GC cycle, but `object' and `values' where not protected and could
have therefore been moved.


Revision 37073 - Directory Listing
Modified Fri May 2 02:35:29 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Moved `EIF_IS_WINDOWS' and `EIF_IS_VMS' from `eif_commands.h' to `eif_eiffel.h'
  so that we can have the queries `is_windows', `is_vms' and `is_unix' in
  PLATFORM class from EiffelBase kernel.


Revision 37016 - Directory Listing
Modified Sat Apr 26 00:35:45 2003 UTC (16 years, 8 months ago) by jfiat
Original Path: trunk/Src/bench/C
fix a compilation issue on win32


Revision 37010 - Directory Listing
Modified Fri Apr 25 23:40:56 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
In debug mode always check for memory consistency at each de/allocation calls.


Revision 37009 - Directory Listing
Modified Fri Apr 25 23:40:10 2003 UTC (16 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Made EIF_OBJECT meaningful on .NET and with implementation not using our
 moving GC.


Revision 37008 - Directory Listing
Modified Fri Apr 25 23:13:51 2003 UTC (16 years, 8 months ago) by jfiat
Original Path: trunk/Src/bench/C
added timeout feature on condition_variable 'wait_with_timeout'


Revision 37004 - Directory Listing
Modified Fri Apr 25 22:52:09 2003 UTC (16 years, 8 months ago) by jfiat
Original Path: trunk/Src/bench/C
added timeout feature on condition_variable 'wait_with_timeout'


Revision 36654 - Directory Listing
Modified Tue Apr 8 19:20:28 2003 UTC (16 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Removed non-used local variable.


Revision 36652 - Directory Listing
Modified Tue Apr 8 19:17:00 2003 UTC (16 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in storable when you have TUPLE types as part of attributes type
when those attributes are set to Void. It turns out that we were not taking
into account the fact that TUPLE type encoding `-15, 0, count, tuple_dtype'
is special and when we encounter it, we should skip the first 3 items and
only continue of `tuple_dtype'. This fixes a problem where mismatches were
reported but did not actually occur, because `0' and `1' were considered
type being retrieved, and most of the time they are not.
Fixed warnings while displaying error message and updated type display
  in error message to properly display a TUPLE type.


Revision 36638 - Directory Listing
Modified Tue Apr 8 01:16:59 2003 UTC (16 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a memory leak in the event of a retrieval exception which is rescued
by an application?


Revision 36347 - Directory Listing
Modified Thu Mar 13 23:44:27 2003 UTC (16 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in `dynamic_eval' where we should clear the exceptions if any
occurred while evaluating some expressions in the debugger. Before `echval'
was not reset and therefore it was trying to access `eif_trace' in `exok'
but would failed because `eif_trace' was reset but not `echval'.


Revision 36261 - Directory Listing
Modified Mon Mar 10 22:26:05 2003 UTC (16 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Make sure that `eif_size.h' does not have the `executable' bit set.


Revision 36253 - Directory Listing
Modified Mon Mar 10 01:01:41 2003 UTC (16 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
New version number Eiffel54.


Revision 36187 - Directory Listing
Modified Tue Mar 4 17:24:21 2003 UTC (16 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Updated code to use Eiffel C type rather than standard C type such as `short',
`long' because we were using already the size of Eiffel C type rather than
the size of C type. As a consequence the code was not portable on 64 bits
platform where `long' is 64 bits.


Revision 36184 - Directory Listing
Modified Tue Mar 4 01:44:46 2003 UTC (16 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added calls to Microsoft C routine that check memory validity:
- check for out-of-bound write
- check for memory leak
This is done in `iniststk' which is the first runtime routine that allocates
C memory.


Revision 36107 - Directory Listing
Modified Thu Feb 20 00:27:13 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added `-no-cpp-precomp' option to avoid spurious C warnings and makes C
 compilation slightly faster.


Revision 36098 - Directory Listing
Modified Wed Feb 19 22:48:58 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added multithreaded support compilation flags.


Revision 36097 - Directory Listing
Modified Wed Feb 19 22:24:32 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Better shared library support commands.
Added `-lcompat' for using `ftime'.


Revision 36046 - Directory Listing
Modified Tue Feb 18 16:58:26 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Simpler way of building shared libraries.


Revision 36045 - Directory Listing
Modified Tue Feb 18 16:55:18 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Removed empty definition of `make'.


Revision 36044 - Directory Listing
Modified Tue Feb 18 05:11:54 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Made building of shared library to work, it is not said yet if it is actually
  usable.


Revision 36036 - Directory Listing
Modified Tue Feb 18 00:56:58 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed memory leak with new recoverable storable because some allocated memory
were not freed.
Fixed automatic conversion warning with use of `type_conversion'.


Revision 36015 - Directory Listing
Modified Sat Feb 15 00:57:49 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
First version of Mac OS X configuration file.
Major issue still to solve is creation of shared libraries.


Revision 35974 - Directory Listing
Modified Thu Feb 13 20:10:42 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added enomem implementation for IL code.


Revision 35936 - Directory Listing
Modified Wed Feb 12 22:46:57 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed error in code because we were incorrectly freeing the address
pointed by an integer value, actually this was a typo `accounting' instead
of `account'.


Revision 35873 - Directory Listing
Modified Tue Feb 11 17:25:13 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Using g++ as a C++ compiler on Solaris.


Revision 35846 - Directory Listing
Modified Sat Feb 8 02:08:44 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
The `static_type' should not be the type where attribute is defined, but
rather the static type associated to current object in which we want to
find out the attribute type. It fixes bug report #3340 from ENEA.


Revision 35845 - Directory Listing
Modified Sat Feb 8 01:41:35 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
The `static_type' should not be the type where attribute is defined, but
rather the static type associated to current object in which we want to
find out the attribute type. It fixes bug report #3340 from ENEA.


Revision 35844 - Directory Listing
Modified Sat Feb 8 01:26:00 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Protected multi-threaded calls to `eif_find_true_type' since `rtud_inv'
can be modified in another thread.


Revision 35787 - Directory Listing
Modified Fri Feb 7 18:16:29 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Use `lld' to display integer 64 bits as this is definitely more standard.


Revision 35778 - Directory Listing
Modified Fri Feb 7 04:42:40 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in `spclone' because to retrieve `count' and `elem_size' from `source'
  we were using `zone', but this `zone' was computed before an allocation
  and therefore might not be valid anymore. This bug was introduced when
  adding the use of RT_SPECIAL_XXX macros.


Revision 35776 - Directory Listing
Modified Wed Feb 5 06:06:56 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
To remove C warnings on Tru64, updated way of calling `eif_final_id' to
take the extra argument `offset'. Basically instead of calling
	eif_final_id (xxx, table - offset, ...., obj)
we do
	eif_final_id (xxx, table, ..., obj, offset)
And in `eif_final_id' we do `table [X - offset]'.


Revision 35760 - Directory Listing
Modified Tue Feb 4 22:51:49 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed C warnings.


Revision 35745 - Directory Listing
Modified Tue Feb 4 20:39:54 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in new retrieval for expanded objects included in expanded objects,
  we forgot to add the `expanded_offset' when reading the attributes back. It
  was shown by eweasel test `store-expanded-retrieve-dies    exec136'.


Revision 35737 - Directory Listing
Modified Tue Feb 4 16:56:55 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug where `correct_mismatch' was not called if the last attribute of
an object was unmodified.


Revision 35736 - Directory Listing
Modified Tue Feb 4 04:18:36 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Previous fix was not correct, because we could not retrieve old storable
made with a size of `idrf_buffer_size' which did not have the `sizeof(int32)'
removed from the total. So we were reading `sizeof(int32)' bytes less than
what we should have. Now, we allocate the buffer with an extra `sizeof(int32)'
bytes and everything works fine.


Revision 35701 - Directory Listing
Modified Fri Jan 31 23:49:06 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added new feature to create an expanded object from the run-time in either
  workbench or finalized mode (before only workbench mode was possible).
  That is to say macro `RTLX' is now defined for both mode, and `cr_exp' too.
The above feature permits us to fix bug in reallocation of SPECIAL of expanded
  where creation procedure was not call on newly created items. Since this
  was done in many places `copy.c', `misc.c' and `malloc.c', I've refactored
  this initialization in `sp_init' from `malloc.c' and this feature is now
  used in above other locations. At least if we decide in the future how
  items should be created, only one location has to be changed.


Revision 35679 - Directory Listing
Modified Fri Jan 31 17:20:55 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in `eraise' where `trace' was not reset and therefore could contain
  boggus information.
Added new type of exception `EN_RT_CHECK' used so far to trigger a nice exception
  when an out-of-bound SPECIAL access is done.
Fixed bug in `print_top' where `code' (argument of routine) was reset and
  later used with `print_object_location_reason_effect', but since reset
  the original meaning was lost.
Fixed bug in display for `print_object_location_reason_effect' because the
  boundary where not the correct one, meaning that even if we had enough
  space we were printing on multiple lines.


Revision 35678 - Directory Listing
Modified Fri Jan 31 17:13:34 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in `sprealloc' for SPECIAL of expanded, because we were not setting
  the EO_EXP flag in the object header for all additional expanded objects
  in SPECIAL. To reproduce simply create an ARRAY of expanded with 5 elements
  and then do a force on the 10th element -> all of sudden the count on the
  SPECIAL is 0.


Revision 35677 - Directory Listing
Modified Fri Jan 31 17:12:10 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed ANSI C warning on Windows.
Fixed bug in `arycpy' for SPECIAL of expanded, because we were not setting
  the EO_EXP flag in the object header for all additional expanded objects
  in SPECIAL.


Revision 35555 - Directory Listing
Modified Sat Jan 25 00:16:00 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
New string message for loop variant violation.


Revision 35553 - Directory Listing
Modified Sat Jan 25 00:13:51 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Implementation of `recoverable storable'. Kindly made by Darren Hiebert
from Xontech Inc. It is still separate from independent_store but next
integration will merge them.


Revision 35540 - Directory Listing
Modified Fri Jan 24 03:20:19 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Merged interpretation of BC_ARRAY and BC_PARRAY in one block with a small
different part depending if we got a BC_ARRAY or a BC_PARRAY.
Fixed bug when handling a manifest TUPLE that contains an expanded object,
 we were doing it completely wrong, now we do it correctly.
Fixed possible bug because we were not using RTAS_OPT when inserting
 references, the previous comment was not correct, as you don't know from
 where the inserted reference is coming from, nor do you know how the
 special object was created.


Revision 35534 - Directory Listing
Modified Thu Jan 23 22:53:27 2003 UTC (16 years, 11 months ago) by eweasel
Original Path: trunk/Src/bench/C
Fixed crash on some implementation of `fprintf' that does not accept
a null string, so we added a protection.
Removed `typedef' of uint32 since it is inherited from a header file.


Revision 35533 - Directory Listing
Modified Thu Jan 23 22:52:53 2003 UTC (16 years, 11 months ago) by eweasel
Original Path: trunk/Src/bench/C
Removed `typedef' of uint32 since it is inherited from a header file.


Revision 35532 - Directory Listing
Modified Thu Jan 23 22:52:03 2003 UTC (16 years, 11 months ago) by eweasel
Original Path: trunk/Src/bench/C
Added compilation of `bytedump' and `meltdump' on Unix.


Revision 35469 - Directory Listing
Modified Wed Jan 22 00:25:58 2003 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug where we raised an exception where we should not have. Since if
`malloc_from_zone' fails, we can still allocated from the free list. It does
not mean that the previous call to `acollect' or `collect' could not clean
up some memory, it just meant that all available memory was used, so we need
some more, which is done by returning a null reference to the caller which
will be responsible to find another way to allocate the memory.


Revision 35412 - Directory Listing
Modified Fri Jan 17 17:54:08 2003 UTC (17 years ago) by manus
Original Path: trunk/Src/bench/C
Added `-pipe' option to speed up C compilation.


Revision 35379 - Directory Listing
Modified Thu Jan 16 00:01:40 2003 UTC (17 years ago) by manus
Original Path: trunk/Src/bench/C
Removed useless \n after displaying `a_effect' in `print_object_location_reason_effect'
since `a_effect' already contains it.


Revision 35378 - Directory Listing
Modified Wed Jan 15 22:42:36 2003 UTC (17 years ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect passed value for formatting of object address.


Revision 35377 - Directory Listing
Modified Wed Jan 15 22:33:54 2003 UTC (17 years ago) by manus
Original Path: trunk/Src/bench/C
New version 1.08 of library.


Revision 35376 - Directory Listing
Modified Wed Jan 15 22:17:46 2003 UTC (17 years ago) by manus
Original Path: trunk/Src/bench/C
Revisited display of exception trace so that all information is fully visible
to the extend that it is no bigger than the 256 bytes buffer used to display
parts of the exception trace.


Revision 35375 - Directory Listing
Modified Wed Jan 15 22:16:28 2003 UTC (17 years ago) by manus
Original Path: trunk/Src/bench/C
Made `eif_load_dll' working with IL code generation.


Revision 35308 - Directory Listing
Modified Fri Jan 10 00:10:07 2003 UTC (17 years ago) by manus
Original Path: trunk/Src/bench/C
New way to interpret object creation as now `create x.make' is equivalent
to `x := create {X}.make'. So we do not need a special opcode BC_CREATE_EXP
anymore, we create the object and the byte code stream will then perform
the call and perform the invariant check.


Revision 35307 - Directory Listing
Modified Fri Jan 10 00:06:35 2003 UTC (17 years ago) by manus
Original Path: trunk/Src/bench/C
BC_CREATE_EXP is not used anymore due to new way of creating object.


Revision 35306 - Directory Listing
Modified Fri Jan 10 00:04:25 2003 UTC (17 years ago) by manus
Original Path: trunk/Src/bench/C
Updated to new way of creating Eiffel objects in melted mode.


Revision 35305 - Directory Listing
Modified Thu Jan 9 23:57:00 2003 UTC (17 years ago) by manus
Original Path: trunk/Src/bench/C
Ensured that return type of `RT_SPECIAL_INFO*' was a `char *' so that it
can be used for pointer arithmetic.
Added proper paranthesis in RT_SPECIAL_ELEM_SIZE* to ensure computation validity.


Revision 35298 - Directory Listing
Modified Thu Jan 9 22:48:56 2003 UTC (17 years ago) by manus
Original Path: trunk/Src/bench/C
Updated Borland compiler path to reflect new 5.3 release


Revision 35269 - Directory Listing
Modified Mon Jan 6 22:58:45 2003 UTC (17 years ago) by manus
Original Path: trunk/Src/bench/C
Made `epush' accepts a `void *' to avoid useless warnings when putting something
else than a `char *'.
Fixed errors in usage of EIF_OBJECT vs EIF_REFERENCE.


Revision 35267 - Directory Listing
Modified Mon Jan 6 19:31:24 2003 UTC (17 years ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect declaration of `hash_zone' to avoid warnings during C compilation.


Revision 35137 - Directory Listing
Modified Tue Dec 17 19:36:51 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Replaced EIF_OBJ by EIF_OBJECT.
Fixed incorrect singature for `EVENT_CALLBACK' function type definition:
 should have been EIF_REFERENCE and not EIF_OBJECT.


Revision 35094 - Directory Listing
Modified Thu Dec 12 22:31:33 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed issue with independent store of large arrays of object (large meaning
above 65536 elements). The memory corruption occurred because `idrf_buffer_size'
did not reflect the actual usable size of the buffer we use for serializing
the data (it was 4 bytes too big). The consequence was in `widr_multi_any'
we were writting to the head of the next block of memory which most likely
was in the C free list and therefore C free list was corrupted. This could
generate random crash depending or not the corrupted area of the C free list
was accessed or not.

	make is
		local
			a: ANY; f: RAW_FILE; mem: MEMORY
		do
			a := compound_object (75000)
			create f.make_open_write ("data")
			f.independent_store (a)
			f.close
			memory_consistency_test
		end
	memory_consistency_test is
		local
			i: INTEGER; p: POINTER
		do
			from i := 0 until i > 10 loop
				p := calloc (65000, 4)
				i := i + 1
			end
		end
	eif_rt_xcalloc (n, s: INTEGER): POINTER is
		external
			"C signature (unsigned int, unsigned int): EIF_POINTER use %"eif_malloc.h%""
		end
	compound_object (count: INTEGER): ARRAY [STRING] is
		local
			i: INTEGER
		do
			from create Result.make (0, count) until i > count loop
				Result.put (create {STRING}.make (0), i)
				i := i + 1
			end
		end


Revision 35073 - Directory Listing
Modified Wed Dec 11 18:28:29 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect specification for FreeBSD for display INTEGER_64.


Revision 35051 - Directory Listing
Modified Tue Dec 10 22:47:11 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added `a_pos' argument in `parsing_retrieve' used by compiler to perform
a call to `lseek' in `ise_compiler_retrieved'. That way project retrieval
works on FreeBSD too (as converting from a FILE * to a descriptor was messing
up the position on FreeBSD).


Revision 35050 - Directory Listing
Modified Tue Dec 10 22:45:25 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Moved too restrictive precondition into check statements in `scavenge' as
object should be in `from' zone only if it is not an expanded, and if it
is, then its parent must be in the `from' zone if not yet moved.


Revision 35049 - Directory Listing
Modified Tue Dec 10 22:44:05 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed missing parenthesis in RT_SPECIAL_ELEM_SIZE


Revision 35047 - Directory Listing
Modified Tue Dec 10 06:34:12 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added `-lcompat' since some C routines need it (e.g. ftime)


Revision 34988 - Directory Listing
Modified Fri Dec 6 18:17:08 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect resizing code.


Revision 34954 - Directory Listing
Modified Thu Dec 5 01:01:10 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect signature for Eiffel objects.


Revision 34948 - Directory Listing
Modified Wed Dec 4 22:50:40 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
To avoid mistakes in programmer's C code, we made EIF_OBJECT depends on EIF_REFERENCE.


Revision 34947 - Directory Listing
Modified Wed Dec 4 22:49:28 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added macros to mark objects (used by INTERNAL).


Revision 34934 - Directory Listing
Modified Mon Dec 2 18:16:36 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
We now display the line number in finalized mode too.


Revision 34888 - Directory Listing
Modified Fri Nov 22 17:36:04 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Made `eif_gen_typename' and `eif_gen_typename_len' accessible to other
run-time modules.


Revision 34882 - Directory Listing
Modified Fri Nov 22 07:05:29 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Made windows and unix use `printf' as a way to report errors. On Windows
we just need to put a breakpoint under `_printf' to stop when an exception
is violated.


Revision 34881 - Directory Listing
Modified Fri Nov 22 07:03:35 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed cleaning issue if an exception occurs during retrieval (`rt_clean'
  should be called before RTXSC).
Fixed bug in retrieving expanded objects, we were clearing the EO_EXP flag
  which was causing the GC to crash.


Revision 34880 - Directory Listing
Modified Fri Nov 22 04:35:29 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added some more precondition to `scavenge'.
Changed in `gfree' comment to make sure object is `B_BUSY' by a precondition.
Added `scavenge_statistics' that looks into scavenge zone and gives some
 more information about how many objects and their size in the scavenge zone.


Revision 34879 - Directory Listing
Modified Fri Nov 22 01:34:17 2002 UTC (17 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed C typo which could cause a crash: used `=' instead of `=='.


Revision 34878 - Directory Listing
Modified Sun Nov 17 05:38:08 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Provide an equivalent to `eraise' for IL code generation (But behavior is
not yet identical). Also definied `eio', `esys' and `eise_io' the same way.


Revision 34875 - Directory Listing
Modified Thu Nov 14 17:34:20 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed Incorrect size specification for Integer_16_size and Integer_64_size


Revision 34871 - Directory Listing
Modified Wed Nov 13 06:44:31 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug since now EIF_INTEGER have a size of 32 bits by default, the header size
on most platform will not be 16, but 8. So instead of trying to figure out
the value, let's keep the macro for Alpha.


Revision 34769 - Directory Listing
Modified Tue Nov 5 22:35:54 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug eweasel entry exec141.


Revision 34701 - Directory Listing
Modified Fri Oct 25 04:54:56 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Removed liman from being compiled.


Revision 34697 - Directory Listing
Modified Fri Oct 25 01:38:22 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Temporary fix as `eif_par_table2_size' is incorrectly defined in the C generated
code of the compiler and we patch `eif_gen_conf_init' for that, but I did not
realize that in melted mode we were generating the correct size, so that break
`eif_gen_conf_init' is now broken. Instead we reduce the size by 1 in a fake
maner so that we get the same behavior in melted/frozen/finalized mode.
We should fix the compile to generate the correct size instead.


Revision 34690 - Directory Listing
Modified Thu Oct 24 02:53:40 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed typo in optimization flag.


Revision 34689 - Directory Listing
Modified Thu Oct 24 02:53:30 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Updated to newer version Tru64 Unix and 5.2/5.3


Revision 34670 - Directory Listing
Modified Wed Oct 23 04:27:14 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed typo in comments.


Revision 34669 - Directory Listing
Modified Wed Oct 23 04:25:23 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Use new RT_SPECIAL_XXX macros to make code less knowledgeable about SPECIAL internals.


Revision 34668 - Directory Listing
Modified Wed Oct 23 04:21:19 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Use new RT_SPECIAL_XXX macros to make code less knowledgeable about SPECIAL internals.
Replaced a few `char *' by `EIF_REFERENCE'.


Revision 34667 - Directory Listing
Modified Wed Oct 23 04:17:08 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Use new RT_SPECIAL_XXX macros to make code less knowledgeable about SPECIAL internals.
Fixed possible incorrect value passed to `isspace' in `next_item'.
Removed warnings at line 1706 and 1926.


Revision 34666 - Directory Listing
Modified Wed Oct 23 04:13:09 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Use new RT_SPECIAL_XXX macros to make code less knowledgeable about SPECIAL internals.
Fixed an incorrect check statement that was using `=' instead of `=='.


Revision 34665 - Directory Listing
Modified Wed Oct 23 03:58:40 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Use new RT_SPECIAL_XXX macros to make code less knowledgeable about SPECIAL internals.
Fixed int to short conversion by adding a cast.


Revision 34664 - Directory Listing
Modified Wed Oct 23 03:54:39 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Use new RT_SPECIAL_XXX macros to make code less knowledgeable about SPECIAL internals.


Revision 34663 - Directory Listing
Modified Wed Oct 23 03:45:31 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Use new RT_SPECIAL_XXX macros to make code less knowledgeable about SPECIAL internals.
Replaced some `char *' by `EIF_REFERENCE'.
Fixed some warnings due to signed/unsigned int conversion.


Revision 34662 - Directory Listing
Modified Wed Oct 23 03:44:01 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Added RT_SPECIAL_COUNT_WITH_INFO and RT_SPECIAL_ELEM_SIZE_WITH_INFO which
enables given a pointer to where information is located in SPECIAL object
to quickly find the `count' and `elem_size' of current SPECIAL object.
Useful as in the future we might change how this is done.


Revision 34652 - Directory Listing
Modified Mon Oct 21 19:38:43 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
First hpux-11 port configuration. Not perfect yet, but good enough to
perform a compilation of the run-time.


Revision 34651 - Directory Listing
Modified Mon Oct 21 19:37:47 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Remove line break in line that will break the C compilation if DBLSIZ is not 8. This
line break is only a problem on HPUX.


Revision 34650 - Directory Listing
Modified Mon Oct 21 19:36:43 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Removed declaration of `malloc' as it should be part of the headers we
are using.


Revision 34639 - Directory Listing
Modified Wed Oct 16 02:01:21 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a bug where we were not processing the complete `eif_par_table2' array
we were always missing the last item (Found in finalization of `abs2rel'
tool in Src/tools/abs2rel).


Revision 34616 - Directory Listing
Modified Thu Oct 10 21:52:07 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Cosmetics: replaced `first' and `second' by `f' and `s' in `diadic'.
Fixed `BC_DIV' and `BC_MOD' to perform proper balancing rules.


Revision 34612 - Directory Listing
Modified Thu Oct 10 18:30:21 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Added conversion from REAL to INTEGER_64.


Revision 34611 - Directory Listing
Modified Thu Oct 10 18:28:39 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Added conversion from double to INTEGER_64.


Revision 34607 - Directory Listing
Modified Thu Oct 10 17:53:18 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed `idr_Item' to accept all Eiffel basic types and do no use the serialization
routines are they do not handle all new basic types. Instead we use memcpy.
Did not touch case for bit, string and reference for the moment, but will do later.


Revision 34606 - Directory Listing
Modified Thu Oct 10 17:47:41 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Added `send_integer_64_value' for INTEGER_64 types.
Changed C types by using their Eiffel counter part C types.


Revision 34575 - Directory Listing
Modified Thu Oct 3 02:40:22 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Forgot to change signature of `eifthd_compound_id' as we just did for `eif_compound_id'.


Revision 34574 - Directory Listing
Modified Thu Oct 3 02:15:28 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Added some comments about our hashing algorithm for strings.


Revision 34573 - Directory Listing
Modified Thu Oct 3 02:14:58 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Cosmetics and fixed a potential crash in #ifdef DEBUG statement.


Revision 34572 - Directory Listing
Modified Thu Oct 3 02:12:26 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Added `ei_field_static_type_of_type' that will compute the static type
of an Eiffel attribute as written in the Eiffel class. Useful for enhanced
reflection.


Revision 34571 - Directory Listing
Modified Thu Oct 3 02:10:14 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug at line 1731 and 1961 when we did the conversion from `char *' to
`EIF_REFERENCE' because `o_ref' kept its `*' where it should not have.
Rewrote some SPECIAL initialization in a way that is more the way we usually
  do it (note that the semantic is the same).


Revision 34570 - Directory Listing
Modified Thu Oct 3 02:08:22 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Updated code to new signature of `eif_compound_id' that does not take the
object itself as a parameter, but its Dftype instead.


Revision 34569 - Directory Listing
Modified Thu Oct 3 02:08:07 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Added `egc_XXX_dtype' which corresponds to the dynamic type of all basic types.
Will be used later by `internal.c' for new routine `ei_field_static_type_of_type'.


Revision 34568 - Directory Listing
Modified Thu Oct 3 02:04:26 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Replaced `c_generator' by a macro which calls new feature `c_generator_of_type'
which use a Dftype instead of an object to get its associated class name.


Revision 34567 - Directory Listing
Modified Thu Oct 3 01:54:56 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Updated code to new signature of `eif_compound_id' that does not take the
object itself as a parameter, but its Dftype instead.


Revision 34566 - Directory Listing
Modified Thu Oct 3 01:52:50 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Modified `eif_compound_id' now takes a `Dftype' instead of an object as in
fact it was only accessing the `Dftype' of the object. And it enables us now
to call `eif_compound_id' even when we do not have an object.
Added `eif_gen_typename_of_type' which is basically identical to old
`eif_gen_typename' except that it does not take an object, but a `Dftype'.
Fixed a bug with expanded manipulation in `eif_id_of' when a formal generic
parameter or an anchored feature type is expanded we were not converting
the dftype back to a positive value. This would cause the creation of
two distincts generic derivations even though they represent the same type.


Revision 34565 - Directory Listing
Modified Thu Oct 3 01:48:08 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Modified `eif_compound_id' now takes a `Dftype' instead of an object as in
fact it was only accessing the `Dftype' of the object. And it enables us now
to call `eif_compound_id' even when we do not have an object.
Added `eif_gen_typename_of_type' and modified `eif_gen_typename' to be a
macro using `eif_gen_typename_of_type'.


Revision 34564 - Directory Listing
Modified Thu Oct 3 01:30:47 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in `spiso' because even if special was marked with `EO_COMP' we
were doing a `memcmp' comparison but it does not make sense. We have to do
such comparisons only when it is not marked `EO_REF' and not marked `EO_COMP'
(basic types only).
Removed in `rdeepiter' useless recomputation of result already stored in `t_ref'.


Revision 34554 - Directory Listing
Modified Tue Oct 1 23:57:45 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Previous fix regarding retrieval of expanded objects was not correct, because
I did not realize that `get_expanded_pos' was giving completely incorrect
results. First it was always the expanded size of and second the complete object
size was incorrect two. Then I realize that we did not need to update the
inside reference to the subobjects because when we create the object that has
the expanded objects we update those references correctly. So when we retrieve
the expanded object attribute, we only need to setup the flags and that's all,
no need to read the old inside reference.
In `rt_update2' nothing is needed now except to go through the sub-objects to
update any remaining references.


Revision 34550 - Directory Listing
Modified Mon Sep 30 22:44:33 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Replaced occurrences of `char *' by `EIF_REFERENCE' whenever appropriate.
Fixed `Xrt_nmake' to raise the `EN_MEM' exception just after we try to allocate
  some memory and not after manipulating the allocated area (which could
  result in a seg fault since it should be null).
Renamed `new' into `new_obj' because `new' is a C++ keyword and could cause problems in
  the future with some C compilers.
Fixed `rt_update2' to correctly update expanded objects.
Fixed `gen_object_read' and `object_read' to correctly handle retrieval of
  expanded objects (before since we were decrementing `num_attrib' too many
  times we were forgetting to retrieve some attributes.
Cosmetics.


Revision 34540 - Directory Listing
Modified Fri Sep 27 18:26:27 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
We are now officially starting 5.3


Revision 34349 - Directory Listing
Modified Tue Sep 3 21:04:28 2002 UTC (17 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Use a windows specific version of `shword' taken from `argcargv.c'. That
way we can correctly process filenames with "\" in them, the Unix version
of `shword' remove them.


Revision 34348 - Directory Listing
Modified Tue Sep 3 21:03:35 2002 UTC (17 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Moved use of `shword' on non-Windows platform only.


Revision 34222 - Directory Listing
Modified Sat Aug 31 19:15:08 2002 UTC (17 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Updated with new EiffelStudio logo.


Revision 34154 - Directory Listing
Modified Thu Aug 29 23:38:03 2002 UTC (17 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
New splashscreen for EiffelStudio 5.2 free edition.


Revision 34153 - Directory Listing
Modified Thu Aug 29 23:17:09 2002 UTC (17 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Use `display reminder' instead of a duplication message of `display_reminder'.


Revision 34152 - Directory Listing
Modified Thu Aug 29 23:12:41 2002 UTC (17 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Always show splash screen in non-commercial mode.


Revision 33354 - Directory Listing
Modified Thu Aug 1 18:35:42 2002 UTC (17 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Added some assertions checking.


Revision 33353 - Directory Listing
Modified Thu Aug 1 18:33:14 2002 UTC (17 years, 5 months ago) by manus
Original Path: trunk/Src/bench/C
Reviewed license message.


Revision 33195 - Directory Listing
Modified Tue Jul 23 01:30:01 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition of `EIF_BORLAND' so that `econsole.c' from console compiles
fine under Borland.


Revision 33194 - Directory Listing
Modified Tue Jul 23 00:49:30 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed run-time so that the redirection works with Borland when linked
in graphical mode.


Revision 33180 - Directory Listing
Modified Mon Jul 22 21:39:28 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
We only need one object file, not the dll.


Revision 33170 - Directory Listing
Modified Mon Jul 22 19:18:53 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `str_isi' as it is now implemented in Eiffel in the STRING class.


Revision 33149 - Directory Listing
Modified Sat Jul 20 00:39:37 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed `str_isi' that was not detecting that `-XX123' was not a valid integer.


Revision 33022 - Directory Listing
Modified Mon Jul 15 20:04:45 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Changed 360 into 356 for ISE's address.


Revision 32768 - Directory Listing
Modified Mon Jul 8 01:08:43 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Use lex instead of flex for `lex' variable as we do not have flex anymore
for Solaris.


Revision 32766 - Directory Listing
Modified Mon Jul 8 00:53:06 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Moved declaration of EIF_GET_CONTEXT macros after declaration of `eif_global_context_t'
structure.
Fixed incorrect patch at version 2.54 as code would not compile anymore, instead
 added a feature that returns the thread specific data as a static declared
 and defined in header file. Doing this enables inlining by most C compilers and
 removes warning because of non-used local variable without breaking any code.


Revision 32758 - Directory Listing
Modified Sun Jul 7 23:58:26 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added inclusion of `strlen' for WORKBENCH mode to avoid implicit declaration
of `strlen'.


Revision 32725 - Directory Listing
Modified Fri Jul 5 18:33:34 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added `BC_CAST_CHAR' to cast an integer to a character.


Revision 32620 - Directory Listing
Modified Mon Jul 1 17:01:00 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Replaced all occurences of `char *' to denote a non-protected Eiffel object
into EIF_REFERENCE.
Replaced all occurences of `char *' to denote an EIF_POINTER by EIF_POINTER.


Revision 32619 - Directory Listing
Modified Mon Jul 1 16:52:15 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Added RT_SPECIAL_INFO, RT_SPECIAL_COUNT and RT_SPECIAL_ELEM_SIZE and the
corresponding _WITH_ZONE to quickly get access to internals of SPECIAL objects.
(useful for writing assertions).


Revision 32618 - Directory Listing
Modified Mon Jul 1 16:50:33 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Improved version of `spsubcopy' with added contracts.


Revision 32613 - Directory Listing
Modified Fri Jun 28 06:04:37 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a problem with `join' because when we try to access `terminated'
from a thread, the protected reference we have in `eif_thr_wait' might
be gone because thread has already exited. So now, the first thing we
do is to keep a local protected reference to the thread which is used
to access `terminated' and avoids the crash.


Revision 32600 - Directory Listing
Modified Thu Jun 27 18:58:47 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Made sure we use EIF_OBJECT instead of EIF_REFERENCE to reflect changes in
the EiffelThread library. Also using EIF_OBJECT increase the reliability of
the threading mechanism to be sure that the reference that we get is still
valid.
Removed declaration of feature that do not exist anymore.


Revision 32581 - Directory Listing
Modified Wed Jun 26 20:35:47 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/C
Made `efreeze' and `eufreeze' to accept SPECIAL objects.


Revision 32443 - Directory Listing
Modified Wed Jun 12 16:02:16 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed typo that was not detected under Windows as BOOLEAN is a valid type.


Revision 32441 - Directory Listing
Modified Wed Jun 12 15:44:41 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Made type of `egc_sp_XX' variables to be uint32.
Added `egc_sp_ref' to find out about special of references.


Revision 32440 - Directory Listing
Modified Wed Jun 12 15:43:10 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed `rec_swrite' to handle properly special of new basic types.


Revision 32439 - Directory Listing
Modified Wed Jun 12 15:42:20 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Added `eif_special_any_type', `eif_is_special_type' and `eif_set_dynamic_type'.
Fixed `ei_special'.


Revision 32438 - Directory Listing
Modified Wed Jun 12 15:40:53 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Use `rt_main.h' instead of `eif_econsole.h' which has been removed.


Revision 32437 - Directory Listing
Modified Wed Jun 12 15:40:00 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Added feature declaration that use to be in `eif_econsole.h'.


Revision 32436 - Directory Listing
Modified Wed Jun 12 15:39:23 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Use proper type for dtype, that is to say `uint32'.


Revision 32435 - Directory Listing
Modified Wed Jun 12 15:38:22 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
removed usage of `eif_econsole.h', we use instead `rt_main.h' or `eif_main.h'.


Revision 32356 - Directory Listing
Modified Tue Jun 4 05:58:34 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Use `exit' on Windows instead of `ExitProcess' so that all C handles such
as standard input and output are correctly closed.


Revision 32331 - Directory Listing
Modified Mon Jun 3 04:32:14 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Removed useless C compiler warning because we are declaring a variable that
is not used to get the return value of `getspecific'.


Revision 32319 - Directory Listing
Modified Fri May 31 23:54:47 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Removed useless declaration since we have now removed all the declared features
from `econsole.c' and that some of them have been moved into `eif_main.h'.


Revision 32318 - Directory Listing
Modified Fri May 31 23:54:01 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Moved some declaration from `eif_econsole.h' in current header file, that
it makes more sense to have them here.


Revision 32317 - Directory Listing
Modified Fri May 31 23:53:31 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
No need for referencing `eif_econsole.h', it is done in `console.c' only.


Revision 32310 - Directory Listing
Modified Fri May 31 07:21:34 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
New way of managing console input/output. We are now using the standard
C API for that on Windows, which will ensure that code behaves the same
way on Unix systems and Windows.
Some work had to be done in the creation of the DOS console when we are
in a windows application so that standard input/output are correctly
redirected to the console that gets created.


Revision 32309 - Directory Listing
Modified Fri May 31 07:19:16 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Force display of feedback cursor when using `launch' from EXECUTION_ENVIRONMENT.


Revision 32308 - Directory Listing
Modified Fri May 31 07:15:56 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/C
Special case of `spawn_child' on Windows to know if we are launching the
Eiffel compiler or not. This is because the Eiffel compiler is a DOS application
and we do not want a DOS console to appear when launched from the daemon.
However we want to see the DOS console for console application launched
from the Eiffel graphical environment.


Revision 32181 - Directory Listing
Modified Thu May 23 01:29:35 2002 UTC (17 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed problem with `join' when using condition variable to perform it. We
were signaling to quickly to the parent we were done, whereas we should have
wait until the very last instruction before calling EIF_THR_EXIT.


Revision 32138 - Directory Listing
Modified Tue May 21 17:52:33 2002 UTC (17 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed `eifaddr_offset' as last commits forgot about some conditional compilation.


Revision 32136 - Directory Listing
Modified Tue May 21 17:44:54 2002 UTC (17 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a bug when storing/retrieving TUPLE objects, we were skipping some
critical information and therefore was making storable crash.


Revision 32122 - Directory Listing
Modified Mon May 20 17:33:48 2002 UTC (17 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed `eif_thr_wait' as we were getting the address of `terminated' from
THREAD_CONTROL when it is called, but it is possible that this address changes
if a collection is ran during the execution of the thread in which case the
thread never terminates. We are now using `Current' object and `eifaddr_offset'
to find out if thread is indeed terminated.


Revision 32121 - Directory Listing
Modified Mon May 20 17:32:27 2002 UTC (17 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `eifaddr' as a function, it is now a macro that calls new function
  `eifaddr_offset' useful as it avoids to have to compute the attribute
  offset each time we want to access the same attribute from the same object.


Revision 32035 - Directory Listing
Modified Tue May 14 07:50:48 2002 UTC (17 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed reading of `BC_INT16' as it should read 2 bytes and not 4 (as it was doing
it when using `bwchar').


Revision 31910 - Directory Listing
Modified Tue May 7 22:18:14 2002 UTC (17 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed reading of melted creation expression.


Revision 31909 - Directory Listing
Modified Tue May 7 22:07:53 2002 UTC (17 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect reading of byte code when handling once function.


Revision 31908 - Directory Listing
Modified Tue May 7 21:40:13 2002 UTC (17 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Updated to the fact that now INTEGER constants are now of the size of their
type instead of being all INTEGER_32.
Updated BC_XXEXTERN opcodes since they now have one short integer more to read.


Revision 31907 - Directory Listing
Modified Tue May 7 21:08:13 2002 UTC (17 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Went back to definition of `2.5.12.3' for `ei_count_field_of_type' and
`ei_field_name_of_type' because using `egc_fsystem' instead of `System'
was not good when system contains melted classes as `egc_fsystem' contains
the data from the last freeze and not the updated one.


Revision 31856 - Directory Listing
Modified Sun May 5 01:12:41 2002 UTC (17 years, 8 months ago) by manus
Original Path: trunk/Src/bench/C
Cosmetics on `readconsole', `safe_readconsole' and `writeconsole', they are
 now called `read_console', `safe_read_console' and `write_console'.
Fixed `write_console' as Windows as a limitation where input buffer cannot
 be bigger than about 60KB. So when we get this problem we call `write_console'
 twice with a buffer twice as small and so one until it succeeds or buffer
 size is 0. Fixes PR 3164 submitted on the compiler by Groupe S.


Revision 31660 - Directory Listing
Modified Sat Apr 20 03:58:12 2002 UTC (17 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed typo on `eif_min_double' and `eif_max_double' feature name.


Revision 31659 - Directory Listing
Modified Sat Apr 20 03:28:00 2002 UTC (17 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed first incorrect implementation of min and max.


Revision 31658 - Directory Listing
Modified Sat Apr 20 01:38:44 2002 UTC (17 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
New header file used for code generation. It includes feature to compute
`min', `max' and `abs' in an efficient manner as it can be inlined by the
C compiler.


Revision 31631 - Directory Listing
Modified Thu Apr 18 21:27:03 2002 UTC (17 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
No more special command `eif_call_finish_freezing' and `eif_gr_call_finish_freezing'.
Everything is now done at the level of the Eiffel compiler.


Revision 31605 - Directory Listing
Modified Wed Apr 17 17:44:25 2002 UTC (17 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Removed unnecessary cast.


Revision 31603 - Directory Listing
Modified Wed Apr 17 17:36:25 2002 UTC (17 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed EIF_INTEGER_8 to be signed as `char' may be unsigned by default.


Revision 31502 - Directory Listing
Modified Mon Apr 15 02:31:22 2002 UTC (17 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed `BC_DIV' and `BC_MOD' to convert the right hand side to the heaviest type.
Not doing it was breaking some code such as `i_32 // i_8' as we will consider the
right hand side has its value stored in the `int32' field, but in fact it is in
the `int8' part, so we simply need a conversion.


Revision 31297 - Directory Listing
Modified Thu Apr 4 02:32:10 2002 UTC (17 years, 9 months ago) by manus
Original Path: trunk/Src/bench/C
Now when we process a signal we check that we were indeed the last handler
registered for this signal, if it was not the case, we restore the one
that was previously set and that most likely called us.


Revision 31047 - Directory Listing
Modified Thu Mar 14 23:01:11 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bad signature for a C external returning an Eiffel string.


Revision 31043 - Directory Listing
Modified Thu Mar 14 02:17:13 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Force `d_keepsig' to be defined as Linux supports it.


Revision 31042 - Directory Listing
Modified Thu Mar 14 02:09:47 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Updated MANIFEST file with new entries in the run-time/include directory. Removed
the one that have been removed.


Revision 31041 - Directory Listing
Modified Thu Mar 14 02:09:11 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
No need to prevent the `d_keepsig' test on Linux platform.


Revision 31038 - Directory Listing
Modified Wed Mar 13 22:54:09 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed errors introduced at last integration, errors found on Unix but not
detected on Windows :-(.


Revision 31033 - Directory Listing
Modified Wed Mar 13 18:24:32 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Improved signatures for stream storing/retrieving.


Revision 31002 - Directory Listing
Modified Fri Mar 8 00:20:53 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
When we allocate a new console, we make sure that Stdin and Stdout are indeed
set to the FILE handle we have created for input and output. Doing this makes
C API that prints on the Console to display something on the console we are
creating. Before nothing would appear.


Revision 31001 - Directory Listing
Modified Fri Mar 8 00:13:45 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Defined `enomem' in .NET mode to do nothing.


Revision 30967 - Directory Listing
Modified Wed Mar 6 01:47:10 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Added definition of `file_path_exists'.


Revision 30961 - Directory Listing
Modified Wed Mar 6 01:08:58 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed minor typos introduced last integration with new use of `lstat'.


Revision 30956 - Directory Listing
Modified Wed Mar 6 00:50:19 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Implemented `file_path_exists' that will never resolve a symlink to the pointed
file on platform that supports `lstat'.
Updated `file_stat' to always use `lstat' whenever possible and then if the call
is successful and that the file is a symlink we call `stat' to resolve to the
pointed file. The consequence is that in about 90% or more of cases where there
is no symlink, the call should be faster, if there is a symlink it should be
slower.


Revision 30946 - Directory Listing
Modified Tue Mar 5 22:35:19 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Windows does not support `lstat'.


Revision 30938 - Directory Listing
Modified Tue Mar 5 01:22:00 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Removed OS/2 specific part.


Revision 30937 - Directory Listing
Modified Tue Mar 5 01:21:38 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Windows configuration file using Unix tools.


Revision 30925 - Directory Listing
Modified Sun Mar 3 23:15:13 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed interpretation of BC_CAST_LONG to take into account case where input
is a BOOLEAN. Cosmetics for case where input is a DOUBLE or a REAL.


Revision 30525 - Directory Listing
Modified Fri Feb 1 21:35:33 2002 UTC (17 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Updated path to build delivery.


Revision 30510 - Directory Listing
Modified Fri Feb 1 02:13:00 2002 UTC (17 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Removed `-DISE_GC' as now declared in eif_confmagic.h


Revision 30494 - Directory Listing
Modified Thu Jan 31 20:09:26 2002 UTC (17 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
New way to get some internal data through macros instead of function.


Revision 30406 - Directory Listing
Modified Sat Jan 26 20:08:40 2002 UTC (17 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added `emalloc_size' which is the new allocation feature that does not query
the dtype nor the size of the objects saving potential page fault. Old `emalloc'
calls `emalloc_size' with the appropriate parameter.
Added `set_memory_object' to make code of `emalloc_size' smaller (to favour
inlining) as this is rarely called (only for MEMORY object).


Revision 30405 - Directory Listing
Modified Sat Jan 26 20:05:40 2002 UTC (17 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added `emalloc_size' which is the new allocation feature that does not query
the dtype nor the size of the objects saving potential page fault.


Revision 30401 - Directory Listing
Modified Fri Jan 25 02:56:01 2002 UTC (17 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in computation of object size that have some INTEGER_64. We were making
them having a size of a POINTER which is not valid at all.


Revision 30396 - Directory Listing
Modified Thu Jan 24 18:27:45 2002 UTC (17 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
Added `-DCYGWIN' compilation option.


Revision 30378 - Directory Listing
Modified Wed Jan 23 19:37:43 2002 UTC (17 years, 11 months ago) by manus
Original Path: trunk/Src/bench/C
New path to cygwin.
New extension for library ".a" instead of ".o"


Revision 30200 - Directory Listing
Modified Sat Jan 12 04:22:08 2002 UTC (18 years ago) by manus
Original Path: trunk/Src/bench/C
Fixed bugs in new implementation of `find_referers' and `find_instance_of',
performed some simplification in C signature.


Revision 30159 - Directory Listing
Modified Thu Jan 10 23:46:52 2002 UTC (18 years ago) by manus
Original Path: trunk/Src/bench/C
New `find_referers' implementation. We now have `matching' a feature that
takes a criterion function `compare_function' and for each objects that matches
through `compare_function' it adds it the list. Now `find_referers' returns
a SPECIAL object with all found objects in there.
Added `find_instance_of' to find all objects of a certain instance based using the
same way we do for `find_referers'.


Revision 30058 - Directory Listing
Modified Mon Jan 7 06:24:57 2002 UTC (18 years ago) by manus
Original Path: trunk/Src/bench/C
Made code of `x2c.c' a little bit clearer.


Revision 30057 - Directory Listing
Modified Sun Jan 6 23:58:54 2002 UTC (18 years ago) by manus
Original Path: trunk/Src/bench/C
Fixed typo in `parameters'.


Revision 30031 - Directory Listing
Modified Thu Jan 3 17:35:26 2002 UTC (18 years ago) by david_s
Original Path: trunk/Src/bench/C
VMS Port: if SA_RESTART not defined, define as 0.


Revision 29982 - Directory Listing
Modified Fri Dec 28 21:49:57 2001 UTC (18 years ago) by manus
Original Path: trunk/Src/bench/C
Added `egc_system_location' that is used in `option.c' to store the profinfo file
in the case a finalized system is profiled. If for some reasons the `egc_system_location'
does not exist anymore the profinfo file will be saved in the directory in
which the system has been launched.


Revision 29977 - Directory Listing
Modified Fri Dec 28 06:52:44 2001 UTC (18 years ago) by manus
Original Path: trunk/Src/bench/C
Fixed incorrect header file inclusion due to recent addition of `rt_wbench.h'
which needed to be included in `rt_macros.h' to be consistent with the
way `eif_wbench.h' is included in `eif_macros.h'.
Added `rt_wbench.h' whenever it was appropriate.


Revision 29946 - Directory Listing
Modified Thu Dec 27 23:11:09 2001 UTC (18 years ago) by manus
Original Path: trunk/Src/bench/C
Removed `ca_copy' and `ca_zero' as they could be done in Eiffel.


Revision 29939 - Directory Listing
Modified Thu Dec 27 01:28:01 2001 UTC (18 years ago) by manus
Original Path: trunk/Src/bench/C
Moved private macros of `eif_wbench.h' into private header file `rt_wbench.h'.


Revision 29938 - Directory Listing
Modified Thu Dec 27 00:26:02 2001 UTC (18 years ago) by manus
Original Path: trunk/Src/bench/C
Removed `wtype' and `wptype' as they are not used now.


Revision 29930 - Directory Listing
Modified Wed Dec 26 22:18:18 2001 UTC (18 years ago) by manus
Original Path: trunk/Src/bench/C
Renamed `strchr' into `pos' and `index' into `pos'. Before it was working as
we defined `index' as a macro to `strchr' which between you and me is silly.


Revision 29917 - Directory Listing
Modified Tue Dec 25 03:41:12 2001 UTC (18 years ago) by manus
Original Path: trunk/Src/bench/C
Removed useless C externals.


Revision 29914 - Directory Listing
Modified Tue Dec 25 01:53:49 2001 UTC (18 years ago) by manus
Original Path: trunk/Src/bench/C
Changed default value of TH_ALLOC to be 768KB. Doing so improved the performance
on the compiler of about 12.5% (going from 28min23s to 24min50s)


Revision 29912 - Directory Listing
Modified Mon Dec 24 23:08:45 2001 UTC (18 years ago) by manus
Original Path: trunk/Src/bench/C
Instead of #ifdef statements we use EIF_INTEGER_64_DISPLAY macro
definition to display INTEGER_64 depending on the platform formatting.


Revision 29902 - Directory Listing
Modified Fri Dec 21 23:11:56 2001 UTC (18 years, 1 month ago) by david_s
Original Path: trunk/Src/bench/C
VMS port: remove VMS-specific code, it is now in eifrtvms.c


Revision 29900 - Directory Listing
Modified Fri Dec 21 23:05:46 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
The application now warns the debugger when it reaches a call stack depth of `critical_stack_depth' elements against a possible stack overflow.


Revision 29899 - Directory Listing
Modified Fri Dec 21 23:04:37 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
Added a request that sets the call stack depth at which the application warns the debugger that there might be a stack overflow.


Revision 29898 - Directory Listing
Modified Fri Dec 21 23:03:53 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
Fixed a bug: we were actually sending only half of the requested call stack elements.


Revision 29887 - Directory Listing
Modified Fri Dec 21 02:13:48 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Merged code in `eif_id_of' for finding the `dftype' of a LIKE_FEATURE or LIKE_PFEATURE
with code for finding `dftype' of a LIKE_ARG_TYPE or LIKE_CURRENT, since they were
identical.


Revision 29849 - Directory Listing
Modified Thu Dec 20 01:17:35 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed deadlock on Unix platform where mutexes are not recursive. This happened
during the call of an agent because `eif_gen_tuple_typecode_str' and
`eif_gen_typecode_str' where doing a call to `make' from STRING which then
needs some generic conformance to create the `area'.


Revision 29848 - Directory Listing
Modified Thu Dec 20 00:48:50 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Added `<string.h>' for `memcpy' declaration.


Revision 29847 - Directory Listing
Modified Thu Dec 20 00:48:17 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed typo `saved_assertion' and not `saved_assertions'
CV:S ----------------------------------------------------------------------


Revision 29845 - Directory Listing
Modified Thu Dec 20 00:19:04 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
Restore the assertion level when we catch an exception.


Revision 29823 - Directory Listing
Modified Wed Dec 19 08:02:32 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed useless EIF_GET_CONTEXT


Revision 29822 - Directory Listing
Modified Wed Dec 19 07:56:12 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed ANSI-C warning to avoid ambiguous `else'


Revision 29821 - Directory Listing
Modified Wed Dec 19 07:42:41 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed unused local variable warning.
Fixed Unix code for call to `dynamic_evaluation' which as now one more argument.


Revision 29758 - Directory Listing
Modified Tue Dec 18 01:51:39 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in `scavenge' related to expanded objects. `scavenge' was correctly
returning the new location of the expanded objects, however it did not update
the previous location OVERHEAD and as a result the GC was not taking into account
the new location and was leaving a pointer to the old location in the object
containing the expanded object. Leaving the forwarded mark on the previous
OVERHEAD location was enough to solve the problem.


Revision 29753 - Directory Listing
Modified Mon Dec 17 19:12:14 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Replaced in `str_replace' the call to `memcpy' by `memmove' as the `str' and `new'
string can be the same area, e.g. if you call `foobar.replace_substring (foobar, 4,6)'
where foobar contains "foobar" you should get "foofoobar" and not "foofooboo" as
we were getting it with the call to `memcpy'. Reported by Eric Bezault.


Revision 29747 - Directory Listing
Modified Mon Dec 17 08:40:47 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Removed one sanity check that checks that the script is launched from the console
and not from another script as we never do such things and we do want to run
it from a script (eg ./quick_configure)


Revision 29730 - Directory Listing
Modified Sat Dec 15 00:46:52 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
Added a parameter to call_stack(), to be able to retrieve only the n first elements of the call stack.


Revision 29720 - Directory Listing
Modified Fri Dec 14 04:50:46 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Made `metamorphose_top' declaration in `rt_interp.h' instead of `eif_interp.h'
as it is private to the run-time.


Revision 29719 - Directory Listing
Modified Fri Dec 14 04:50:05 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed code that did not compile in multithreaded mode.


Revision 29718 - Directory Listing
Modified Fri Dec 14 04:44:27 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
We explode the scavenge zone only if EIF_NO_RECLAIM is not defined. Otherwise
we loose some non-needed time to perform operation that the user does not want
anyway.


Revision 29717 - Directory Listing
Modified Fri Dec 14 03:40:39 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
Added support for conditional breakpoints.


Revision 29716 - Directory Listing
Modified Fri Dec 14 03:39:55 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
Fixed the interpreter.


Revision 29715 - Directory Listing
Modified Fri Dec 14 03:39:27 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
Avoid to crash when exiting a program that was compiled without profiling support, but in which the user called `start_profile'.


Revision 29714 - Directory Listing
Modified Fri Dec 14 03:38:10 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
No longer free the communication buffer, since we now allocate it to keep it for next time.


Revision 29634 - Directory Listing
Modified Wed Dec 12 03:38:05 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
Removed the "SP_UPPER" request type (the upper bound can be set at the same time as the lower one, why send 2 requests when one is enough?).
Added the "METAMORPHOSE" request, that converts the top-level item in the operational stack from a basic type into a reference.


Revision 29633 - Directory Listing
Modified Wed Dec 12 03:35:38 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
Added a new function `metamorphose_top' that converts the top-level item in the operational stack from a basic type to a reference type.


Revision 29593 - Directory Listing
Modified Tue Dec 11 02:13:13 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
Now catch exceptions that are raised while evaluating a feature.
Also support calls to precompiled features.


Revision 29592 - Directory Listing
Modified Tue Dec 11 02:11:49 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
We now use a global communication buffer to send packets, instead of reallocating (and not deallocating, I believe) one each time a tread is performed.
This implies that we free the buffer when the application exits.


Revision 29591 - Directory Listing
Modified Tue Dec 11 02:10:27 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
It is now possible to send Void parameters to the dynamic evaluation.


Revision 29584 - Directory Listing
Modified Mon Dec 10 19:31:26 2001 UTC (18 years, 1 month ago) by david_s
Original Path: trunk/Src/bench/C
VMS port: updated for 5.1


Revision 29519 - Directory Listing
Modified Thu Dec 6 00:41:21 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
New struct definition of `eif_par_types'. We simply change the order in
the struct and we saved in size about 4 bytes per struct.


Revision 29508 - Directory Listing
Modified Wed Dec 5 05:01:05 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Use `eif_portable.h' instead of `eif_config.h' for consistence with Unix version.


Revision 29501 - Directory Listing
Modified Wed Dec 5 00:28:26 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
Removed a useless & operation, since the macro Deif_bid already does it.


Revision 29481 - Directory Listing
Modified Tue Dec 4 23:40:39 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
Now also send the dynamic type of special objects.
This is needed to perform calls on them: we need their type, including the generic implementation (but not the full dynamic type though).


Revision 29450 - Directory Listing
Modified Tue Dec 4 17:24:24 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
The debugger now passes flags compacted on one byte for is_external/is_precompiled, so the application has to decompact them first.


Revision 29449 - Directory Listing
Modified Tue Dec 4 17:22:51 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
The run-time doesn't initialize the type of objects on the stack, so that we have to do it ourselves.


Revision 29419 - Directory Listing
Modified Fri Nov 30 02:16:26 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
We now look in Eiffel52.


Revision 29291 - Directory Listing
Modified Fri Nov 23 21:44:39 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in allocation of `typearr' in `eif_new_gen_der' when we are handling
a generic class with more than 8 generic parameter. We were allocating one entry
less than we should have. Thanks Ian for pointing this out.


Revision 29288 - Directory Listing
Modified Thu Nov 22 03:00:48 2001 UTC (18 years, 1 month ago) by xavier
Original Path: trunk/Src/bench/C
Now use Eiffel51.


Revision 29248 - Directory Listing
Modified Tue Nov 20 21:49:27 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Added protection so that the return `tid' from the creation of the thread is
saved before the launched thread terminates and frees the `tid' location.


Revision 29220 - Directory Listing
Modified Mon Nov 19 23:54:07 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed type of EIF_THR_TYPE on Windows, it is not a HANDLE but a `unsigned long'.


Revision 29209 - Directory Listing
Modified Mon Nov 19 22:32:39 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a problem with assertion checking if a crash occurred during the checking
of an assertion and if there was a retry statement, the `in_assertion' flag
was reset to 0 instead of preserving the original value. This was the cause
to some infinite loop.


Revision 29201 - Directory Listing
Modified Mon Nov 19 21:07:52 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a problem with assertion checking if a crash occurred during the checking
of an assertion and if there was a retry statement, the `in_assertion' flag
was reset to 0 instead of preserving the original value. This was the cause
to some infinite loop.


Revision 29198 - Directory Listing
Modified Mon Nov 19 17:30:55 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Increased timeout from 15s to 30s since in some cases it was not enough
(eg machine loaded)


Revision 29197 - Directory Listing
Modified Mon Nov 19 17:30:15 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Increased timeout time from 15s to 30s since it was too small when machine
is loaded.


Revision 29196 - Directory Listing
Modified Mon Nov 19 03:12:55 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Cosmetics


Revision 29195 - Directory Listing
Modified Sun Nov 18 07:11:59 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Forgot to free `free_stack' which was causing a big memory leak if many
threads are launched.


Revision 29192 - Directory Listing
Modified Sat Nov 17 23:51:48 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed problem with threads and debugging from EiffelStudio. The reason is that
in `dstop_nested' we were not unlocking the mutex when breakpoints were discarded or
when we are in a qualified call because we were calling `return' with not unlocking
the mutex.
Cosmetics.
Made the mutex macro available in both modes (threaded and non-threaded).


Revision 29107 - Directory Listing
Modified Wed Nov 14 02:09:36 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Added new definition for protection macro in case `EIF_IL_DLL' is set.


Revision 29062 - Directory Listing
Modified Tue Nov 13 19:13:09 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Make platform specific code to find the executable name, because otherwise
`shword' does not do the correct job when the path to executable contains
spaces on Windows.


Revision 28957 - Directory Listing
Modified Fri Nov 9 18:46:23 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Added `RT_IL' definition.


Revision 28956 - Directory Listing
Modified Fri Nov 9 18:44:49 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
More consistent way of launching the debugged application on Windows and
Unix. We now take the directory where the `epr' is as a startup directory,
then we use `cwd' if specified by the user to change from the previous
startup directory.


Revision 28881 - Directory Listing
Modified Thu Nov 8 18:33:40 2001 UTC (18 years, 2 months ago) by xavier
Original Path: trunk/Src/bench/C
No need to include the splash screen on Linux.


Revision 28849 - Directory Listing
Modified Wed Nov 7 22:15:00 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed RTOVP and RTOVF so that there is no `pasting' warnings as they were
reported by gcc. The reason is that it is invalid to concatenate f and (xx)
using the ## operator, instead it is easier to put them next to each other
in the macro definition.


Revision 28779 - Directory Listing
Modified Tue Nov 6 03:20:19 2001 UTC (18 years, 2 months ago) by xavier
Original Path: trunk/Src/bench/C
Check that the application id is correct before killing it. Otherwise we kill estudio instead.


Revision 28661 - Directory Listing
Modified Wed Oct 31 19:18:23 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Added support for INTEGER_64 constants in melted code.


Revision 28612 - Directory Listing
Modified Wed Oct 31 03:17:23 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Changed default value of timeout to be 15s, instead of 120s.


Revision 28609 - Directory Listing
Modified Wed Oct 31 01:14:23 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed binary operations on integers so that they work as expected with all
integer types.


Revision 28541 - Directory Listing
Modified Mon Oct 29 02:34:07 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Compile minilzo before liman since compilation of liman might fail some time.


Revision 28529 - Directory Listing
Modified Sat Oct 27 18:39:00 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed `eif_setup.h' for multithreaded mode in 5.1


Revision 28497 - Directory Listing
Modified Fri Oct 26 22:45:06 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed declaration of `egc_init_plug' to be C ANSI compliant.


Revision 28452 - Directory Listing
Modified Fri Oct 26 00:49:25 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed EIF_INITIALIZE to call `eif_alloc_init' otherwise it does not work
properly.


Revision 28328 - Directory Listing
Modified Wed Oct 24 15:43:21 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed memory leak by not calling `free' in `commute (bug introduced with
version 2.13.6.1.2.3.2.4). Thanks Xavier for finding it.


Revision 28322 - Directory Listing
Modified Wed Oct 24 01:43:32 2001 UTC (18 years, 2 months ago) by xavier
Original Path: trunk/Src/bench/C
Listen to file estudioXXXX instead of ebenchXXXX since it is there that the daemon writes.


Revision 28316 - Directory Listing
Modified Tue Oct 23 02:32:58 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Do not append a `/' on Unix if there is already one.


Revision 28315 - Directory Listing
Modified Mon Oct 22 23:12:40 2001 UTC (18 years, 2 months ago) by manus
Original Path: trunk/Src/bench/C
Removed previous integration since it was not the real problem of not finding
the key in HKLM. The issue was that we were using an old version of the
run-time which did not search in HKLM.


Revision 28314 - Directory Listing
Modified Mon Oct 22 22:42:16 2001 UTC (18 years, 2 months ago) by xavier
Original Path: trunk/Src/bench/C
The software key in HKCU is written Software whereas it is SOFTWARE (uppercase) in HKLM.


Revision 28138 - Directory Listing
Modified Tue Oct 16 00:22:13 2001 UTC (18 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
On windows, `eif_getenv' searchs first in environment variable, then in
HKCU and then in HKLM.


Revision 28042 - Directory Listing
Modified Wed Oct 10 23:37:33 2001 UTC (18 years, 3 months ago) by xavier
Original Path: trunk/Src/bench/C
Added a splash screen which is popped up when a application which was finalized with a non commercial version
of EiffelStudio is launched.


Revision 28006 - Directory Listing
Modified Tue Oct 9 19:52:47 2001 UTC (18 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Put `dbreak_create_table' call in a better place, since it was inserted
between a comment and its corresponding code.


Revision 28005 - Directory Listing
Modified Tue Oct 9 19:47:20 2001 UTC (18 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed another bug in `eif_link_driver' because the addition of the null character
at the end of `source_exe' was done one character beyond the end of the allocated
memory.


Revision 27940 - Directory Listing
Modified Fri Sep 28 16:04:55 2001 UTC (18 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Added special definition of RTPS in workbench mode so that `prof_stack_rewind' is
not called when profiler is not active.


Revision 27939 - Directory Listing
Modified Fri Sep 28 16:03:27 2001 UTC (18 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a second bug in `eif_typeof_array_of' in workbench mode because we
were not doing a RTUD_INV of the passed dtype. See log 1.14 for first bug.


Revision 27935 - Directory Listing
Modified Thu Sep 27 15:28:51 2001 UTC (18 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
We now always get the precursor type which now represents not the precursor
type but the static type of the class where the feature is defined one.


Revision 27895 - Directory Listing
Modified Tue Sep 25 02:35:34 2001 UTC (18 years, 3 months ago) by xavier
Original Path: trunk/Src/bench/C
We now also compile the multithreaded libraries by default.


Revision 27891 - Directory Listing
Modified Tue Sep 25 00:29:48 2001 UTC (18 years, 3 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed comparison <, > and = between a double and something else. There was a typo which
made us compare the float instead of the double value of `item' (stack element) and
therefore we were not comparing correct values.


Revision 27859 - Directory Listing
Modified Fri Sep 21 17:45:59 2001 UTC (18 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Reverted back to version 1.61 because the assumption made that no EIF_GEN_DER
structure was needed for non-generic classes is not completely True, because
if you use the `par_info' structure you need to do some complicated computation
that are performed when the EIF_GEN_DER structure is created.

Fixed bug again in a different manner in generic conformance where an assignment
attempt could affect the result of a generic creation, it corresponds to the EiffelWeasel
entry "assign-attempt-affects-source" (exec121). (Big fix is at line 2020)

Since we fixed `update.c' so that the `parents' field of a `par_info' structure
cannot be NULL, I removed the check against NULL and removed the `nulltab' array
that is not needed anymore.


Revision 27857 - Directory Listing
Modified Fri Sep 21 17:32:45 2001 UTC (18 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Updating the melted code of the `eif_par_table' was generating NULL arrays
instead of generating an array with only one element `-1'. Forcing the
update to create this array removes some checking in the code for `gen_conf.c'
which we replaced by CHECK statement.


Revision 27832 - Directory Listing
Modified Thu Sep 20 22:02:31 2001 UTC (18 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Due to the last integration that forbids the creation of an EIF_GEN_DER
structure for a non-generic type, the `eif_gen_conf' routine was broken
when a parent lookup was performed through the EIF_GEN_DER of a non
generic class. Now, the lookup is done using the `par_info' structure when
the class is not generic, otherwise we use its EIF_GEN_DER structure.


Revision 27732 - Directory Listing
Modified Tue Sep 18 18:24:47 2001 UTC (18 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Implementation of `file_creatable' in version 2.30 was not sufficient. Instead
we are now taking the one from version 2.29 that at the time was only for Unix,
but works fine on Windows too.


Revision 27713 - Directory Listing
Modified Tue Sep 18 16:36:01 2001 UTC (18 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed signature of `dir_current' which was incorrect.
Rewrote content of `dir_current to use EIF_REFERENCE instead of char *, and
to use `RTMS' instead of `makestr'.


Revision 27712 - Directory Listing
Modified Tue Sep 18 16:33:40 2001 UTC (18 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed wrong signature in `dir_current', it returns an EIF_REFERENCE, not an EIF_OBJECT.


Revision 27693 - Directory Listing
Modified Mon Sep 17 21:32:42 2001 UTC (18 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed bug in generic conformance where an assignment attempt could
affect the result of a generic creation, it corresponds to the EiffelWeasel
entry "assign-attempt-affects-source" (exec121).


Revision 27614 - Directory Listing
Modified Thu Sep 13 22:14:54 2001 UTC (18 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Added `eif_is_in_final_collect' that is set to true when `reclaim' is called.


Revision 27605 - Directory Listing
Modified Thu Sep 13 20:27:57 2001 UTC (18 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed a crash that was occurring at the end of an execution that failed
with an exception. Because of the change in the way local variable are
inserted in `loc_set', the `loc_set' structures was corrupted by
new addition to the C call stack. To prevent this, the first thing
we do is to delete the `loc_set' structures so that the GC will not
try to traverse it during the final reclaim.


Revision 27501 - Directory Listing
Modified Mon Sep 10 19:34:55 2001 UTC (18 years, 4 months ago) by manus
Original Path: trunk/Src/bench/C
Fixed `file_creatable' so that it does not crash when arguments has a length
greater than MAX_PATH.
Make Windows and Unix implementation identical in `file_creatable' when checking
the possibility of creating the file, it is now using `access'.


Revision 27458 - Directory Listing
Mo