Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
5 years agouncomment some calls to free
Augustin Degomme [Thu, 6 Nov 2014 10:07:42 +0000 (11:07 +0100)]
uncomment some calls to free

5 years agoAdd mpi_info support for rma calls
Augustin Degomme [Thu, 6 Nov 2014 10:07:01 +0000 (11:07 +0100)]
Add mpi_info support for rma calls

5 years agothis test should now work with out-of-source builds
Augustin Degomme [Wed, 5 Nov 2014 12:02:46 +0000 (13:02 +0100)]
this test should now work with out-of-source builds

5 years agoreplace xbt_dynar_member by xbt_dynar_search_or_negative in this test.
Augustin Degomme [Tue, 4 Nov 2014 14:07:12 +0000 (15:07 +0100)]
replace xbt_dynar_member by xbt_dynar_search_or_negative in this test.

There is a weird bug with xbt_dynar_member on some systems.
When an exception is raised, backtracking mechanism of libc6 can cause segfaults (and valgrind complains quite a lot, even on systems where it does not crash)
Is this related to https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=735090 ?

example obtained stack
 Invalid read of size 4
    at 0x476E383: backtrace (backtrace.c:141)
    by 0x43DC03B: xbt_backtrace_current (backtrace_linux.c:84)
    by 0x43DB200: xbt_dynar_search (dynar.c:474)
    by 0x43DB31F: xbt_dynar_member (dynar.c:511)
    by 0x80494A3: test_launcher (host_on_off_processes.c:35)
    by 0x43C889E: smx_ctx_sysv_wrapper (smx_context_sysv.c:187)
    by 0x46B2BDA: makecontext (makecontext.S:87)

As functionality is the same, using the exception-less version of xbt_dynar_member should avoid the problem, until we find out more about it

5 years ago[mc] Fix FD checkpoint/restore
Gabriel Corona [Tue, 4 Nov 2014 11:09:07 +0000 (12:09 +0100)]
[mc] Fix FD checkpoint/restore

5 years agomodel-checker : comment debug printf
Marion Guthmuller [Tue, 4 Nov 2014 10:49:32 +0000 (11:49 +0100)]
model-checker : comment debug printf

5 years agomodel-checker : save and restore file descriptors
Marion Guthmuller [Tue, 4 Nov 2014 10:39:56 +0000 (11:39 +0100)]
model-checker : save and restore file descriptors

5 years agodeactivate test that actually needs MPI_Type_get_envelope
Augustin Degomme [Tue, 4 Nov 2014 09:20:04 +0000 (10:20 +0100)]
deactivate test that actually needs MPI_Type_get_envelope

5 years agocleanup after martin's cleanup
Augustin Degomme [Tue, 4 Nov 2014 08:51:04 +0000 (09:51 +0100)]
cleanup after martin's cleanup

5 years agoclean after augustin ;)
Martin Quinson [Mon, 3 Nov 2014 19:57:26 +0000 (20:57 +0100)]
clean after augustin ;)

5 years agoMerge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
Martin Quinson [Mon, 3 Nov 2014 19:56:26 +0000 (20:56 +0100)]
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid

5 years agofix the tesh of one last command
Martin Quinson [Mon, 3 Nov 2014 19:54:19 +0000 (20:54 +0100)]
fix the tesh of one last command

Thanks adsein for all your great work on these points.

5 years agochangelog update
Augustin Degomme [Mon, 3 Nov 2014 16:48:02 +0000 (17:48 +0100)]
changelog update

5 years agoAdd preliminary support for MPI_Pack, MPI_Pack_size, and MPI_Unpack.
Augustin Degomme [Mon, 3 Nov 2014 16:47:06 +0000 (17:47 +0100)]
Add preliminary support for MPI_Pack, MPI_Pack_size, and MPI_Unpack.
Activate tests for these functions. Somes cases with too complex imbricated datatypes are not supported (yet).

5 years agofix compilation without mpich3 testsuite
Augustin Degomme [Mon, 3 Nov 2014 14:37:58 +0000 (15:37 +0100)]
fix compilation without mpich3 testsuite

5 years agoupdate gitignore and changelog
Augustin Degomme [Mon, 3 Nov 2014 14:13:40 +0000 (15:13 +0100)]
update gitignore and changelog

5 years agorevalidate yet another tesh output
Martin Quinson [Mon, 3 Nov 2014 15:26:01 +0000 (16:26 +0100)]
revalidate yet another tesh output

I also changed the outputs done by the program to ease the life of tesh.

5 years agorevalidate another tesh file
Martin Quinson [Mon, 3 Nov 2014 14:03:56 +0000 (15:03 +0100)]
revalidate another tesh file

5 years agorevalidate a tesh output
Martin Quinson [Mon, 3 Nov 2014 13:38:15 +0000 (14:38 +0100)]
revalidate a tesh output

5 years agoAdd mpich3 tests for MPI_Info calls.
Augustin Degomme [Mon, 3 Nov 2014 13:05:39 +0000 (14:05 +0100)]
Add mpich3 tests for MPI_Info calls.
As expected, the get_nthkey does not behave as expected, and it won't.

5 years agoAdd MPI_Info_* support.
Augustin Degomme [Mon, 3 Nov 2014 13:04:13 +0000 (14:04 +0100)]
Add MPI_Info_* support.
This adds MPI_Info_create, MPI_Info_free, MPI_Info_get, MPI_Info_dup, MPI_Info_delete, MPI_Info_get_nkeys, MPI_Info_get_nthkey, MPI_Info_get_valuelen functions.
This is just basically a xbt dict wrapper.

We may have issues with the get_nthkey, as the xbt dict does not really keep the order.. but this mpi call is hum ... stupid? aniway.

5 years ago[mc] Fix the previous stack-cleaning optimisation
Gabriel Corona [Mon, 3 Nov 2014 12:36:21 +0000 (13:36 +0100)]
[mc] Fix the previous stack-cleaning optimisation

5 years ago[mc] Do nto clean the main stack
Gabriel Corona [Mon, 3 Nov 2014 12:04:18 +0000 (13:04 +0100)]
[mc] Do nto clean the main stack

We only need to clean the stacks of the application processes.
Otherwise, we spend a *lot* of time cleaniong the stack in the MC code
which slows SimGridMC a lot and is useless anyway.

The way we check if we need to clean the stack is currently quite
haskish and could be improved.

5 years ago[mc] Add stack-cleaning compiler wrappers
Gabriel Corona [Tue, 7 Oct 2014 09:26:45 +0000 (11:26 +0200)]
[mc] Add stack-cleaning compiler wrappers

This compiler wrappers clear each satck frame before using it in order
to avoid issues with unitialized variables in SimGridMC state
comparison.

Compiling with those compiler is much slower.

5 years agoRemove some most simcall HEADERs
Martin Quinson [Mon, 3 Nov 2014 00:45:55 +0000 (01:45 +0100)]
Remove some most simcall HEADERs

5 years ago[popping] allow to omit the handler
Martin Quinson [Sun, 2 Nov 2014 23:42:58 +0000 (00:42 +0100)]
[popping] allow to omit the handler

simcalls handlers are good to get extra arguments from the simcall
(such as the issuer) or to check the parameters, but when there is no
such thing to do, they just load the picture for nothing.

5 years agodocument my recent changes in simix
Martin Quinson [Sun, 2 Nov 2014 23:05:23 +0000 (00:05 +0100)]
document my recent changes in simix

5 years agorename smx_action_t to smx_synchro_t
Martin Quinson [Sun, 2 Nov 2014 22:58:33 +0000 (23:58 +0100)]
rename smx_action_t to smx_synchro_t

This is an old idea, that I want to implement since at least 3 years.
It removes an ambiguity with surf_action_t, and makes it explicit that
these things are a way to synchronize the processes with their
environment.

5 years agobetter handling of blocking simcalls in the generated popping
Martin Quinson [Sun, 2 Nov 2014 17:57:44 +0000 (18:57 +0100)]
better handling of blocking simcalls in the generated popping

Blocking simcalls were marked as simcalls returning void. Being
explicit helps in that obscure part of the code.

5 years agosome more cosmetics in the popping generator
Martin Quinson [Sun, 2 Nov 2014 01:34:04 +0000 (02:34 +0100)]
some more cosmetics in the popping generator

5 years agoGenerate automatically the simcall_HANDLER_* prototypes
Martin Quinson [Sun, 2 Nov 2014 01:23:31 +0000 (02:23 +0100)]
Generate automatically the simcall_HANDLER_* prototypes

- Writing this code manually was burdensome
- This allows to check that the definition in simcall.in actually
  match the handler prototype (safer as we are casting wildly)
- This allows to detect (and destroy) some now unused simcalls

5 years agokill dead code
Martin Quinson [Sun, 2 Nov 2014 00:33:54 +0000 (01:33 +0100)]
kill dead code

5 years ago[popping] cosmetics in doc and generator
Martin Quinson [Sun, 2 Nov 2014 00:32:06 +0000 (01:32 +0100)]
[popping] cosmetics in doc and generator

5 years agorename all SIMIX_pre_* to simcall_HANDLER_*
Martin Quinson [Sun, 2 Nov 2014 00:18:26 +0000 (01:18 +0100)]
rename all SIMIX_pre_* to simcall_HANDLER_*

This is consistant with simcall_BODY_*, and more explicit

5 years agoRename smx_user to libsmx (to mimick libc/smx)
Martin Quinson [Sun, 2 Nov 2014 00:03:04 +0000 (01:03 +0100)]
Rename smx_user to libsmx (to mimick libc/smx)

5 years agofinish the s/smurf/popping/ renaming
Martin Quinson [Sat, 1 Nov 2014 23:39:08 +0000 (00:39 +0100)]
finish the s/smurf/popping/ renaming

Actually, that strange dance is called Popping in English and Smurf
only in French :)

5 years agoimprove a bit the documentation of popping, and align code with doc
Martin Quinson [Sat, 1 Nov 2014 23:30:34 +0000 (00:30 +0100)]
improve a bit the documentation of popping, and align code with doc

5 years agomake smx_popping_bodies.c parsable by eclipse (kinda)
Martin Quinson [Sat, 1 Nov 2014 23:11:00 +0000 (00:11 +0100)]
make smx_popping_bodies.c parsable by eclipse (kinda)

5 years agocosmetics in the popping generator
Martin Quinson [Sat, 1 Nov 2014 23:02:41 +0000 (00:02 +0100)]
cosmetics in the popping generator

5 years agotypo
Martin Quinson [Sat, 1 Nov 2014 22:57:30 +0000 (23:57 +0100)]
typo

5 years agokill dead code
Martin Quinson [Sat, 1 Nov 2014 22:37:46 +0000 (23:37 +0100)]
kill dead code

5 years agofurther simplification of the popping in simix
Martin Quinson [Sat, 1 Nov 2014 22:28:24 +0000 (23:28 +0100)]
further simplification of the popping in simix

5 years agoRemove the 'TUTORIAL: New API' chunks
Martin Quinson [Sat, 1 Nov 2014 21:25:06 +0000 (22:25 +0100)]
Remove the 'TUTORIAL: New API' chunks

This loads the code, and I'm not sure that it is of any help,
actually. Adding a new API is rather uncommon, and the existing ones
are clean enough to serve as an example, nowadays.

5 years agorename a generated file involved in the kernel popping
Martin Quinson [Sat, 1 Nov 2014 21:14:30 +0000 (22:14 +0100)]
rename a generated file involved in the kernel popping

5 years agokill dead code
Martin Quinson [Sat, 1 Nov 2014 20:52:42 +0000 (21:52 +0100)]
kill dead code

5 years ago[mc] Split config code into mc_config.c
Gabriel Corona [Fri, 31 Oct 2014 15:09:04 +0000 (16:09 +0100)]
[mc] Split config code into mc_config.c

5 years ago[mc] Make MC_resolve_subtype() and MC_resolve_subtype() static functions of mc_dwarf.c
Gabriel Corona [Fri, 31 Oct 2014 12:37:45 +0000 (13:37 +0100)]
[mc] Make MC_resolve_subtype() and MC_resolve_subtype() static functions of mc_dwarf.c

Those functions belong to the mc_dwarf.c layer and are only used there
anyway. Move them here, mark them as static in order to reduce the
number of exported symbols and reduce the cross-layers dependencies.

5 years agosmall correction
degomme [Fri, 31 Oct 2014 10:36:40 +0000 (11:36 +0100)]
small correction

5 years agoprovide user-friendly errors when replay encounters a badly formatted line.
degomme [Fri, 31 Oct 2014 10:28:09 +0000 (11:28 +0100)]
provide user-friendly errors when replay encounters a badly formatted line.
Avoids segfaults in this case

5 years agoSomehow .. we forgot to replay allgather.
degomme [Thu, 30 Oct 2014 16:58:20 +0000 (17:58 +0100)]
Somehow .. we forgot to replay allgather.

5 years agoroot should be optional for gather replay (as it is everywhere else)
degomme [Thu, 30 Oct 2014 16:58:00 +0000 (17:58 +0100)]
root should be optional for gather replay (as it is everywhere else)

5 years agoAdd tracing for RMA calls
degomme [Thu, 30 Oct 2014 15:23:10 +0000 (16:23 +0100)]
Add tracing for RMA calls

5 years agoprevious commit was a mistake. Handle the case more gracefully.
degomme [Thu, 30 Oct 2014 14:56:48 +0000 (15:56 +0100)]
previous commit was a mistake. Handle the case more gracefully.

5 years agodon't push null request back in the dynar
Augustin Degomme [Thu, 30 Oct 2014 13:48:55 +0000 (14:48 +0100)]
don't push null request back in the dynar

5 years agowe should not set error flag when wait or test is called with a null request.
Augustin Degomme [Wed, 29 Oct 2014 16:17:44 +0000 (17:17 +0100)]
we should not set error flag when wait or test is called with a null request.
This is explicitly allowed by the standard.

5 years agoavoid code duplication that lead to out-of-date fortran mpi_init_thread
Augustin Degomme [Wed, 29 Oct 2014 15:48:24 +0000 (16:48 +0100)]
avoid code duplication that lead to out-of-date fortran mpi_init_thread

5 years ago[mc] Document/simplify MC_request_is_enabled()
Gabriel Corona [Thu, 30 Oct 2014 11:30:33 +0000 (12:30 +0100)]
[mc] Document/simplify MC_request_is_enabled()

5 years ago[mc] Simplify mc_update_comm_pattern
Gabriel Corona [Thu, 30 Oct 2014 09:59:26 +0000 (10:59 +0100)]
[mc] Simplify mc_update_comm_pattern

5 years ago[mc] DRY with mc_update_comm_pattern() (broken)
Gabriel Corona [Tue, 28 Oct 2014 15:40:31 +0000 (16:40 +0100)]
[mc] DRY with mc_update_comm_pattern() (broken)

5 years ago[mc] DRY by adding get_call_type()
Gabriel Corona [Tue, 28 Oct 2014 15:30:06 +0000 (16:30 +0100)]
[mc] DRY by adding get_call_type()

5 years ago[mc] Try to DRY in MC main loops
Gabriel Corona [Tue, 28 Oct 2014 13:53:07 +0000 (14:53 +0100)]
[mc] Try to DRY in MC main loops

5 years agoadd a (unused) fortran datatype for compilation of recent bigdft
degomme [Wed, 29 Oct 2014 14:08:13 +0000 (15:08 +0100)]
add a (unused) fortran datatype for compilation of recent bigdft

5 years agosomehow we forgot MPI_REAL datatype C-fortran compatibility
degomme [Wed, 29 Oct 2014 10:17:08 +0000 (11:17 +0100)]
somehow we forgot MPI_REAL datatype C-fortran compatibility

5 years agoMerge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
etortilopez [Wed, 22 Oct 2014 13:46:28 +0000 (15:46 +0200)]
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid

5 years agousing walltimer in adaptive algorithm
etortilopez [Wed, 22 Oct 2014 13:46:20 +0000 (15:46 +0200)]
using walltimer in adaptive algorithm

5 years agodoc update
Augustin Degomme [Tue, 21 Oct 2014 12:27:28 +0000 (14:27 +0200)]
doc update

5 years agoApply patch suggested by fabien Chaix. This avoids issues with reqq being deleted...
Augustin Degomme [Tue, 21 Oct 2014 12:21:15 +0000 (14:21 +0200)]
Apply patch suggested by fabien Chaix. This avoids issues with reqq being deleted in replay waitall
This also removes the MPI barrier in replay finalize, which was not needed anymore

5 years agoLoooong due Changelog update
Augustin Degomme [Fri, 17 Oct 2014 13:07:21 +0000 (15:07 +0200)]
Loooong due Changelog update

5 years agoAdd option to configure the factors used for IB model
Augustin Degomme [Fri, 17 Oct 2014 11:29:08 +0000 (13:29 +0200)]
Add option to configure the factors used for IB model

5 years ago[smpi+mc] When restoring a snapshot, always remap the SMPI privatisation segment
Gabriel Corona [Fri, 17 Oct 2014 12:50:21 +0000 (14:50 +0200)]
[smpi+mc] When restoring a snapshot, always remap the SMPI privatisation segment

After restoring the global variables in a snapshot, the global
variable containing the currently active SMPI privatization segment is
overwritten. As a consequence, the segment SMPI thinks active might be
inconsistent with the currently active segment (which the kernels
knows about).

In this case, we want to remap the segment regardless of what SMPI
thinks.

We might be more clever to avoid unecessary segment switch if the
segment which is really mapped is the same as the one we want.

5 years agoreally fix dist
Augustin Degomme [Thu, 16 Oct 2014 14:02:09 +0000 (16:02 +0200)]
really fix dist

5 years agofix dist
Augustin Degomme [Thu, 16 Oct 2014 13:55:09 +0000 (15:55 +0200)]
fix dist

5 years agoChange verbosity of debug messages
Augustin Degomme [Thu, 16 Oct 2014 13:50:09 +0000 (15:50 +0200)]
Change verbosity of debug messages

5 years agoAdd a new Infiniband network model, based on the works of Jerome Vienne.
Augustin Degomme [Thu, 16 Oct 2014 11:35:26 +0000 (13:35 +0200)]
Add a new Infiniband network model, based on the works of Jerome Vienne.
This computes penalties on communications to account for the slowdowns experimented on real systems, and modeled by jerome
check http://mescal.imag.fr/membres/jean-marc.vincent/index.html/PhD/Vienne.pdf for details

known issue: doesn't work yet with permanent receive mode, as some surf actions are not released properly

5 years agoAdd a safe version of lmm_get_var_from_cnst to avoid looping forever when iterating...
Augustin Degomme [Tue, 14 Oct 2014 12:24:22 +0000 (14:24 +0200)]
Add a safe version of lmm_get_var_from_cnst to avoid looping forever when iterating on a dynar we reorder dynamically

5 years agoRemove irrelevant API documentation
Gabriel Corona [Thu, 16 Oct 2014 12:59:46 +0000 (14:59 +0200)]
Remove irrelevant API documentation

5 years agodisable clang on travis
Martin Quinson [Wed, 15 Oct 2014 15:26:29 +0000 (17:26 +0200)]
disable clang on travis

5 years agodon't test if we cant build
Martin Quinson [Wed, 15 Oct 2014 15:16:46 +0000 (17:16 +0200)]
don't test if we cant build

5 years agobecause we need noise on IRC
Martin Quinson [Wed, 15 Oct 2014 15:13:58 +0000 (17:13 +0200)]
because we need noise on IRC

5 years agoadd a little link to travis status from the README
Martin Quinson [Wed, 15 Oct 2014 15:00:53 +0000 (17:00 +0200)]
add a little link to travis status from the README

5 years agosharing config between travis and jenkins seems non-trivial
Martin Quinson [Wed, 15 Oct 2014 14:58:40 +0000 (16:58 +0200)]
sharing config between travis and jenkins seems non-trivial

5 years agotell travis which config to test
Martin Quinson [Wed, 15 Oct 2014 14:16:20 +0000 (16:16 +0200)]
tell travis which config to test

5 years agowe need doxygen, and I fail to see who's creating the VERSION file
Martin Quinson [Wed, 15 Oct 2014 14:08:56 +0000 (16:08 +0200)]
we need doxygen, and I fail to see who's creating the VERSION file

5 years agotry to use the jenkins on travis too
Martin Quinson [Wed, 15 Oct 2014 14:00:12 +0000 (16:00 +0200)]
try to use the jenkins on travis too

5 years agoMerge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
Martin Quinson [Wed, 15 Oct 2014 13:55:21 +0000 (15:55 +0200)]
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid

5 years agoI'm not sure of why flexml generated a different flex file, but the content seems...
Martin Quinson [Wed, 15 Oct 2014 13:55:11 +0000 (15:55 +0200)]
I'm not sure of why flexml generated a different flex file, but the content seems ok too

5 years agotest if I can write a little travis config file
Martin Quinson [Wed, 15 Oct 2014 13:43:33 +0000 (15:43 +0200)]
test if I can write a little travis config file

5 years agobetter estimate of window for adaptive algorithm
etortilopez [Mon, 13 Oct 2014 14:10:22 +0000 (16:10 +0200)]
better estimate of window for adaptive algorithm

5 years agoMerge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
Lucas Mello Schnorr [Mon, 13 Oct 2014 10:59:24 +0000 (07:59 -0300)]
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid

5 years agoPJ_value_get assumes value exists, this is not the case here so fix it
Lucas Mello Schnorr [Mon, 13 Oct 2014 10:59:05 +0000 (07:59 -0300)]
PJ_value_get assumes value exists, this is not the case here so fix it

Hard-coded colors:
- see comments in the code

5 years ago[mmalloc] Expand the junkarea
Gabriel Corona [Mon, 13 Oct 2014 09:55:31 +0000 (11:55 +0200)]
[mmalloc] Expand the junkarea

In some cases (Fortran + Clang compilation) this is needed. We nee to
fix this more cleanly.

5 years ago[mc] Add support for DW_OP_regN locaitions from DW_AT_frame_base
Gabriel Corona [Mon, 13 Oct 2014 09:37:45 +0000 (11:37 +0200)]
[mc] Add support for DW_OP_regN locaitions from DW_AT_frame_base

Fix DWARF based introspecion support when compiling with LLVM.

5 years ago[mc] Prepare support for register location in DWARF location expression evaluation...
Gabriel Corona [Mon, 13 Oct 2014 09:13:15 +0000 (11:13 +0200)]
[mc] Prepare support for register location in DWARF location expression evaluation code

This is needed in order to support this:

  DW_AT_frame_base  : 1 byte block: 56     (DW_OP_reg6 (rbp))

5 years ago[mmalloc] Fix junkarea handling in free
Gabriel Corona [Mon, 13 Oct 2014 08:08:36 +0000 (10:08 +0200)]
[mmalloc] Fix junkarea handling in free

The call free(junkarea) was broken and was trying to delegate to
mmalloc instead of using junkarea.

Because of this libsimgrid broken when compiling with LLVM with
mmalloc support.

5 years agotry to simplify the way simcalls are generated
Martin Quinson [Sat, 11 Oct 2014 22:17:13 +0000 (00:17 +0200)]
try to simplify the way simcalls are generated

5 years agokill dead code
Martin Quinson [Sat, 11 Oct 2014 21:02:09 +0000 (23:02 +0200)]
kill dead code

5 years agoask swig to please doxygen. Tools will drive me nuts
Martin Quinson [Sat, 11 Oct 2014 20:59:04 +0000 (22:59 +0200)]
ask swig to please doxygen. Tools will drive me nuts

5 years agoignore more cruft
Martin Quinson [Sat, 11 Oct 2014 20:54:27 +0000 (22:54 +0200)]
ignore more cruft

5 years agorename SIMIX_simcall_{pre,post} to SIMIX_simcall_{enter,exit}
Martin Quinson [Sat, 11 Oct 2014 20:47:30 +0000 (22:47 +0200)]
rename SIMIX_simcall_{pre,post} to SIMIX_simcall_{enter,exit}

5 years agoensure that the generated files are autonomous and not included within another file
Martin Quinson [Sat, 11 Oct 2014 20:04:34 +0000 (22:04 +0200)]
ensure that the generated files are autonomous and not included within another file