**
******************************************************
-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));
* Your commit message should follow the git habits, explained eg here:
http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
+* When you add/remove files, and/or make changes in the lists of files to build,
+ please check that "make distcheck" still succeeds. This is needed to ensure
+ that the generated archive is consistent.
+
* If you want to debug memory allocation problems, here are a few hints:
- disable compiler optimizations, to have better backtraces;
- disable the mallocators, or it will be hard to match malloc's with
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