X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7d9a2608433e246294b7c4b339371fd4d3530ba6..7f819b247483e5034f7ce45ecc5ac3258d47aa88:/README.coding diff --git a/README.coding b/README.coding index a2ea54f742..a43aeed403 100644 --- a/README.coding +++ b/README.coding @@ -3,13 +3,18 @@ ** ****************************************************** -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 @@ -23,15 +28,16 @@ The tree is not split on projects, but on file finality: 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. + ** ** Indentation standard ** @@ -40,11 +46,11 @@ The tree is not split on projects, but on file finality: 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 +indent -kr -l120 -nut -i2 -lps -npcs -br -brs -ce -cdw -bbo -npsl -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 @@ -82,14 +88,21 @@ bug. Please report it (or fix it yourself if you can). ** ***************************************************** -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. SIZE_T (FIXME: obsolete?) If possible, avoid size_t and use unsigned long instead. If not, #include in all files manipulating size_t - do cast it to unsigned long before printing (and use %lu) + 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 . PRINTF pointer difference (FIXME: advertise %td instead?) printf ("diff = %ld\n", (long) (pointer2 - pointer1)); @@ -173,6 +186,13 @@ investigating the portability of the thing to windows. cmake -Denable_compile_optimizations=ON \ -Denable_compile_warnings=ON +* 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