**
******************************************************
-There is at least 4 sub-projects in the tree:
+There is at least 5 sub-projects in the tree:
- XBT: eXtended Bundle of Tools (low-level toolbox: logging, datatypes).
- SURF: a SimUlation aRtiFact. This is the simulation kernel.
- MSG: originally MetaSimGrid, MSG is a simple distributed application
simulator.
- - SMPI: Simulated MPI, to run MPI application using emulation technics.
+ - SMPI: Simulated MPI, to run MPI application using emulation technics;
+ - MC: model-checker;
+ - SIMIX: basix interface for simulated processes. This layer defines simcalls
+ (simulation calls) exposed to the simulated processes by the SIMIX "kernel".
+ This interface is used to implement the MSG, SMPI layers.
+ - SIMDAG;
They are all in the same tree because they are complementary tools and
having all of them in the same package makes the installation easier
src/include -> another location for protected headers. Used by SURF, and
other should be converted, since this is the Right Thing.
- testsuite/ -> The more test the better.
- Same organization than src/ and include/
- Tests are allowed to load some headers of the module they test.
- All tests should be listed in run_test.in so that they get
- run on 'make check'.
-
examples/ -> Supposed to be copy/pastable by the user, so keep it clear and
avoid any kind of trick. In particular, do only include the
public headers here.
teshsuite/ -> The more test the better. Put in there any strange test
- doing things that the users are not supposed to do,
- just to see if our framework is robust to incorrect and
- unusual behaviors. All tests written in this section
- should leverage our tesh(1) utility.
-
- testsuite/ -> Old test suite, that should be converted to tesh and
- moved to teshsuite at some point.
+ doing things that the users are not supposed to do,
+ just to see if our framework is robust to incorrect and
+ unusual behaviors. All tests written in this section
+ should leverage our tesh(1) utility.
**
** Indentation standard
Most files use the Kernighan & Ritchie coding style with 2 spaces of
indentation. The indent program can help you to stick to it:
-indent -kr -l80 -nut -i2 -lps -npcs -br -brs -ce -cdw -bbo -npsl <myfile>
+indent -kr -l120 -nut -i2 -lps -npcs -br -brs -ce -cdw -bbo -npsl <myfile>
-The script ./tools/indent runs indent with the appropriate options.
+The script ./tools/internal/indent runs indent with the appropriate options.
-FIXME: this list of arguments is still to be discussed, maybe
+If you use Eclipse, please import the settings in ./tools/internal/eclipse-formating.xml
**
** Type naming standard
**
*****************************************************
-MALLOC:
+MALLOC
Don't use it, or you'll have to check the result (and do some dirty stuff
on AIX). Use xbt_malloc (or even better, xbt_new) instead.
do cast it to unsigned long before printing (and use %lu),
or use %zu.
+INTEGERS
+ Please avoid to use long ints. This is the source of many compatibility
+ problems between 32 bits and 64 bits archs. Either use plain ints (generally
+ 32 bits wide) or long long ints (64 bits wide, at least). At last resort
+ consider using integer types defined in C99 by <stdint.h>.
+
PRINTF pointer difference (FIXME: advertise %td instead?)
printf ("diff = %ld\n", (long) (pointer2 - pointer1));
-INLINE functions
- The definition of a inline function must be visible when it is used.
- As such, an inline function should be defined (an not only declared)
- in header file (.h) with attributes 'static XBT_INLINE'. It should
- not be defined in source file (.c).
-
**
** Commenting the source: doxygen
**
deactivate the whole logging mechanism, switching to printfs
instead. SimGrid becomes incredibly verbose when doing so, but it
you let you fixing the dynars.
-
\ No newline at end of file