Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
12 months agoremove any virtuals from Context::StopRequest
Martin Quinson [Tue, 8 Jan 2019 07:16:56 +0000 (08:16 +0100)]
remove any virtuals from Context::StopRequest

Some clang versions fail otherwise:

/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/8.2.1/bits/exception_ptr.h:172:9: error: destructor called on non-final 'simgrid::kernel::context::Context::StopRequest' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor]
      { static_cast<_Ex*>(__x)->~_Ex(); }
        ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/8.2.1/bits/exception_ptr.h:185:21: note: in instantiation of function template specialization 'std::__exception_ptr::__dest_thunk<simgrid::kernel::context::Context::StopRequest>' requested here
          __exception_ptr::__dest_thunk<_Ex>);
                           ^
/builds/workspace/SimGrid/build_mode/Debug/node/simgrid-manjaro/build/SimGrid-3.21.90/src/simix/ActorImpl.cpp:507:35: note: in instantiation of function template specialization 'std::make_exception_ptr<simgrid::kernel::context::Context::StopRequest>' requested here
actor->throw_exception(std::make_exception_ptr(simgrid::kernel::context::Context::StopRequest("host failed")));
                                  ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/8.2.1/bits/exception_ptr.h:172:34: note: qualify call to silence this warning
      { static_cast<_Ex*>(__x)->~_Ex(); }
                                 ^
1 error generated.

12 months agoautopep8 our python examples
Martin Quinson [Tue, 8 Jan 2019 06:06:03 +0000 (07:06 +0100)]
autopep8 our python examples

12 months agoMerge branch 'master' of framagit.org:simgrid/simgrid
Martin Quinson [Tue, 8 Jan 2019 05:41:48 +0000 (06:41 +0100)]
Merge branch 'master' of framagit.org:simgrid/simgrid

12 months agoAlso test is_suspended in the s4u example
Martin Quinson [Tue, 8 Jan 2019 05:40:32 +0000 (06:40 +0100)]
Also test is_suspended in the s4u example

12 months agopython: test Actor.is_suspended() and introduce this_actor.error
Martin Quinson [Tue, 8 Jan 2019 05:37:28 +0000 (06:37 +0100)]
python: test Actor.is_suspended() and introduce this_actor.error

12 months agoVarious doc improvements
Martin Quinson [Tue, 8 Jan 2019 05:32:35 +0000 (06:32 +0100)]
Various doc improvements

Also kill meaningless functions:
- Actor::yield() was not even implemented, only declared
- this_actor::is_suspended() can only return false, because suspended
  actors don't get executed.

12 months agorename make target to ease tab-completion
Martin Quinson [Tue, 8 Jan 2019 05:00:45 +0000 (06:00 +0100)]
rename make target to ease tab-completion

12 months agoAlso make registered actors killable in python
Martin Quinson [Tue, 8 Jan 2019 04:15:03 +0000 (05:15 +0100)]
Also make registered actors killable in python

12 months agoonly use pybind11 when registering actors
Martin Quinson [Tue, 8 Jan 2019 04:04:50 +0000 (05:04 +0100)]
only use pybind11 when registering actors

Mixing with the underlying C API only makes things harder

12 months agoNew python example: actor-daemon
Martin Quinson [Tue, 8 Jan 2019 03:57:18 +0000 (04:57 +0100)]
New python example: actor-daemon

12 months agoallow python actors to be killed
Martin Quinson [Tue, 8 Jan 2019 03:43:16 +0000 (04:43 +0100)]
allow python actors to be killed

Only works for directly created actors for now, not for the registered
ones. I need to do the same kind of things for register_actors, now.

The funny thing is that I didn't had to clean the contexts for that.

12 months agoDon't turn gcc's -Wmaybe-uninitialized into an error.
Arnaud Giersch [Mon, 7 Jan 2019 16:59:26 +0000 (17:59 +0100)]
Don't turn gcc's -Wmaybe-uninitialized into an error.

It is sometimes bogus. For example:
  src/include/xbt/parmap.hpp:225:19: error:  may be used uninitialized in this function [-Werror=maybe-uninitialized]
      return boost::none;
                    ^

12 months agoFix build with ASan (s/from/this/).
Arnaud Giersch [Mon, 7 Jan 2019 15:50:40 +0000 (16:50 +0100)]
Fix build with ASan (s/from/this/).

12 months agoThread factory is always valid.
Arnaud Giersch [Mon, 7 Jan 2019 14:17:16 +0000 (15:17 +0100)]
Thread factory is always valid.

12 months agoAnonymize unused variable.
Arnaud Giersch [Mon, 7 Jan 2019 09:44:56 +0000 (10:44 +0100)]
Anonymize unused variable.

12 months agoRemove trailing whitespaces.
Arnaud Giersch [Mon, 7 Jan 2019 09:36:53 +0000 (10:36 +0100)]
Remove trailing whitespaces.

12 months agoUpdate copyright lines with new year.
Arnaud Giersch [Mon, 7 Jan 2019 09:28:23 +0000 (10:28 +0100)]
Update copyright lines with new year.

12 months agodo not break sequential execution while fixing parallel execution
Martin Quinson [Mon, 7 Jan 2019 11:23:16 +0000 (12:23 +0100)]
do not break sequential execution while fixing parallel execution

12 months agoFix a race condition
Martin Quinson [Mon, 7 Jan 2019 10:34:57 +0000 (11:34 +0100)]
Fix a race condition

When saving the context of maestro, we must ensure that we are
actually thread 0. Otherwise, we may end up saving the context of a
minion (a working thread).

12 months agodoc: fix copy/paste error
Martin Quinson [Mon, 7 Jan 2019 09:01:39 +0000 (10:01 +0100)]
doc: fix copy/paste error

12 months agoplease sonar, add 'explicit'
Martin Quinson [Sun, 6 Jan 2019 16:33:23 +0000 (17:33 +0100)]
please sonar, add 'explicit'

12 months agofactorize where seq_runall and par_runall save maestro context
Martin Quinson [Sun, 6 Jan 2019 14:08:10 +0000 (15:08 +0100)]
factorize where seq_runall and par_runall save maestro context

12 months agochange static fields in SwappedCtx into regular fields of the factory
Martin Quinson [Sun, 6 Jan 2019 13:21:53 +0000 (14:21 +0100)]
change static fields in SwappedCtx into regular fields of the factory

and other cleanups

12 months agoKill the now useless ParallelRawContext and ParallelBoostContext
Martin Quinson [Sun, 6 Jan 2019 12:05:26 +0000 (13:05 +0100)]
Kill the now useless ParallelRawContext and ParallelBoostContext

They were a perfect duplication of ParallelUContext :(

12 months agomerge ParallelUContext into SwappedContext, that can now run parallel or sequential
Martin Quinson [Sun, 6 Jan 2019 11:58:03 +0000 (12:58 +0100)]
merge ParallelUContext into SwappedContext, that can now run parallel or sequential

12 months agoCosmetics in contexts
Martin Quinson [Sun, 6 Jan 2019 11:09:02 +0000 (12:09 +0100)]
Cosmetics in contexts

- Kill useless code
- Move a method to superclass
- Fix clang builds

12 months agomove a static field of SwappedContext into SwappedContextFactory
Martin Quinson [Sun, 6 Jan 2019 11:06:03 +0000 (12:06 +0100)]
move a static field of SwappedContext into SwappedContextFactory

12 months agoIntroduce a SwappedContextFactory to further reduce code duplication, working WIP
Martin Quinson [Sun, 6 Jan 2019 10:54:40 +0000 (11:54 +0100)]
Introduce a SwappedContextFactory to further reduce code duplication, working WIP

The code seems to work (I've run many tests locally), but it's far
from being clean yet. See this as a checkpoint commit.

12 months agocontext: rewrite some comments, and useless cosmetics
Martin Quinson [Sat, 5 Jan 2019 22:28:31 +0000 (23:28 +0100)]
context: rewrite some comments, and useless cosmetics

12 months agoMove Parallel{Boost,Raw,U}Context::{initialize,finalize} to SwappedContext
Martin Quinson [Sat, 5 Jan 2019 22:12:40 +0000 (23:12 +0100)]
Move Parallel{Boost,Raw,U}Context::{initialize,finalize} to SwappedContext

12 months agofurther cleanups in contexts
Martin Quinson [Sat, 5 Jan 2019 21:43:11 +0000 (22:43 +0100)]
further cleanups in contexts

- Kill SerialRawContext and use SwappedContext
- Centralize everything related to the stack pointer in SwappedContext
  Previously, alloc/dealloc was done in functions in Context.cpp while
  the fields were duplicated in all SwappedContext childs

12 months agoChange a subclass into a superclass around contexts
Martin Quinson [Sat, 5 Jan 2019 19:02:13 +0000 (20:02 +0100)]
Change a subclass into a superclass around contexts

SerialUContext was a subclass of UContext. SwappedContext does the
same, as a super class of UContext.

The idea is to make SwappedContext the ancestor of BoostContext and
RawContext too, to factorize as much code as possible.

12 months agomake SIMIX_context_self() useless and use Context::self() instead
Martin Quinson [Sat, 5 Jan 2019 16:10:34 +0000 (17:10 +0100)]
make SIMIX_context_self() useless and use Context::self() instead

12 months agomove ContextFactory::self() into Context::self() and tidy it up
Martin Quinson [Sat, 5 Jan 2019 14:33:22 +0000 (15:33 +0100)]
move ContextFactory::self() into Context::self() and tidy it up

12 months agoPlease sonar
Martin Quinson [Sat, 5 Jan 2019 02:29:33 +0000 (03:29 +0100)]
Please sonar

- Add 'explicit' where needed
- Don't specify the return type of lambdas
- Verify that this != that before everything in the operator=
- Remove ';' in the comments to not fool the commented code detection mechanism

12 months agoreimplement this test in cpp to use standard threads
Martin Quinson [Sat, 5 Jan 2019 02:18:25 +0000 (03:18 +0100)]
reimplement this test in cpp to use standard threads

12 months agomake this test more robust to cruft that may remain on disk
Martin Quinson [Sat, 5 Jan 2019 02:04:53 +0000 (03:04 +0100)]
make this test more robust to cruft that may remain on disk

12 months agomake xbt_os_thread_self() useless, and kill it
Martin Quinson [Sat, 5 Jan 2019 01:28:55 +0000 (02:28 +0100)]
make xbt_os_thread_self() useless, and kill it

Also remove every parts of xbt_os_thread_t that I managed to make useless

12 months agokill the unused xbt_os_thread_self_name()
Martin Quinson [Sat, 5 Jan 2019 01:21:19 +0000 (02:21 +0100)]
kill the unused xbt_os_thread_self_name()

12 months agokill the now useless xbt_os_thread_{get,set}_extra_data()
Martin Quinson [Sat, 5 Jan 2019 01:11:22 +0000 (02:11 +0100)]
kill the now useless xbt_os_thread_{get,set}_extra_data()

12 months agounify how threaded and parallelisable context factories find context_self
Martin Quinson [Sat, 5 Jan 2019 01:02:31 +0000 (02:02 +0100)]
unify how threaded and parallelisable context factories find context_self

12 months agoInline SIMIX_context_get_current()
Martin Quinson [Sat, 5 Jan 2019 00:20:57 +0000 (01:20 +0100)]
Inline SIMIX_context_get_current()

12 months agoanother small simplification now that threads are usable everywhere
Martin Quinson [Sat, 5 Jan 2019 00:08:40 +0000 (01:08 +0100)]
another small simplification now that threads are usable everywhere

12 months agoFurther code simplifications now that the Thread context backend is always available
Martin Quinson [Fri, 4 Jan 2019 23:45:27 +0000 (00:45 +0100)]
Further code simplifications now that the Thread context backend is always available

12 months agoremove unecessary imports to please sonar
Martin Quinson [Fri, 4 Jan 2019 23:18:36 +0000 (00:18 +0100)]
remove unecessary imports to please sonar

12 months agoFix make distcheck
Martin Quinson [Fri, 4 Jan 2019 23:09:51 +0000 (00:09 +0100)]
Fix make distcheck

12 months agokill xbt_os_sem_t and the required cmake-detection cruft
Martin Quinson [Fri, 4 Jan 2019 23:06:02 +0000 (00:06 +0100)]
kill xbt_os_sem_t and the required cmake-detection cruft

12 months agoIntroduce a portable xbt::OsSemaphore using C++11 threads
Martin Quinson [Fri, 4 Jan 2019 22:50:59 +0000 (23:50 +0100)]
Introduce a portable xbt::OsSemaphore using C++11 threads

12 months agotiny simplification: xbt_os_thread_bind is a noop when not HAVE_PTHREAD_SETAFFINITY
Martin Quinson [Fri, 4 Jan 2019 21:41:00 +0000 (22:41 +0100)]
tiny simplification: xbt_os_thread_bind is a noop when not HAVE_PTHREAD_SETAFFINITY

12 months agotrack some remaining CamelCase deep inside the context code
Martin Quinson [Fri, 4 Jan 2019 21:12:45 +0000 (22:12 +0100)]
track some remaining CamelCase deep inside the context code

12 months agosome useless s/process/actor/ in the source code
Martin Quinson [Fri, 4 Jan 2019 21:05:49 +0000 (22:05 +0100)]
some useless s/process/actor/ in the source code

12 months agosonar: ignore another rule as we don't have real security concerns
Martin Quinson [Fri, 4 Jan 2019 21:03:18 +0000 (22:03 +0100)]
sonar: ignore another rule as we don't have real security concerns

12 months agouse strncpy instead of strcpy to please sonar
Martin Quinson [Fri, 4 Jan 2019 16:43:22 +0000 (17:43 +0100)]
use strncpy instead of strcpy to please sonar

12 months agotravis: don't run the tests before the sonar analysis
Martin Quinson [Fri, 4 Jan 2019 13:51:45 +0000 (14:51 +0100)]
travis: don't run the tests before the sonar analysis

We exeed the 40mn timeframe on travis with those tests.
Too bad, we gonna lose the coverage information...

12 months agopy: try to fix MC builds
Martin Quinson [Fri, 4 Jan 2019 13:43:57 +0000 (14:43 +0100)]
py: try to fix MC builds

12 months agosonar: we do have a process to remove deprecated code
Martin Quinson [Fri, 4 Jan 2019 10:58:35 +0000 (11:58 +0100)]
sonar: we do have a process to remove deprecated code

12 months agotypo in comments
Martin Quinson [Fri, 4 Jan 2019 10:13:42 +0000 (11:13 +0100)]
typo in comments

12 months agocmake: mark some variables as advanced to hide them
Martin Quinson [Fri, 4 Jan 2019 10:12:47 +0000 (11:12 +0100)]
cmake: mark some variables as advanced to hide them

12 months agoMerge branch 'master' of github.com:simgrid/simgrid
Martin Quinson [Thu, 3 Jan 2019 22:23:38 +0000 (23:23 +0100)]
Merge branch 'master' of github.com:simgrid/simgrid

12 months agoyet another example: actor-suspend.py
Martin Quinson [Thu, 3 Jan 2019 22:07:16 +0000 (23:07 +0100)]
yet another example: actor-suspend.py

12 months agogitlab-ci: don't build with sonar, as it does not work
Martin Quinson [Thu, 3 Jan 2019 21:54:27 +0000 (22:54 +0100)]
gitlab-ci: don't build with sonar, as it does not work

12 months agorename an example to stick to the function name
Martin Quinson [Thu, 3 Jan 2019 21:42:58 +0000 (22:42 +0100)]
rename an example to stick to the function name

12 months agopy: another example: actor-join
Martin Quinson [Thu, 3 Jan 2019 21:37:56 +0000 (22:37 +0100)]
py: another example: actor-join

12 months agoPython: many improvements; add a new example (actor-migration)
Martin Quinson [Thu, 3 Jan 2019 20:37:12 +0000 (21:37 +0100)]
Python: many improvements; add a new example (actor-migration)

Also, improve a bit the C++ documentation

12 months agosphinx autodoc needs the package to be built before the doc
Martin Quinson [Thu, 3 Jan 2019 18:27:46 +0000 (19:27 +0100)]
sphinx autodoc needs the package to be built before the doc

12 months agoInstall unzip to get sonar on framagit
Martin Quinson [Thu, 3 Jan 2019 15:37:58 +0000 (16:37 +0100)]
Install unzip to get sonar on framagit

12 months agoInstall curl to get sonar on framagit
Martin Quinson [Thu, 3 Jan 2019 15:36:53 +0000 (16:36 +0100)]
Install curl to get sonar on framagit

12 months agotry to activate sonar on framagit
Martin Quinson [Thu, 3 Jan 2019 15:27:23 +0000 (16:27 +0100)]
try to activate sonar on framagit

12 months agopy: Try to add properties to the Host class
Martin Quinson [Thu, 3 Jan 2019 10:34:53 +0000 (11:34 +0100)]
py: Try to add properties to the Host class

12 months agoDocument recent pyton examples
Martin Quinson [Thu, 3 Jan 2019 10:34:21 +0000 (11:34 +0100)]
Document recent pyton examples

12 months agotravis: more parallelism (extend previous commit).
Arnaud Giersch [Wed, 2 Jan 2019 20:33:07 +0000 (21:33 +0100)]
travis: more parallelism (extend previous commit).

12 months agotypo
Martin Quinson [Wed, 2 Jan 2019 15:38:34 +0000 (16:38 +0100)]
typo

12 months agopy: document the this_actor submodule
Martin Quinson [Wed, 2 Jan 2019 15:20:07 +0000 (16:20 +0100)]
py: document the this_actor submodule

12 months agotravis: increase the build paralelism
Martin Quinson [Wed, 2 Jan 2019 00:51:12 +0000 (01:51 +0100)]
travis: increase the build paralelism

12 months agotravis: pybind11 is not in xenial either
Martin Quinson [Tue, 1 Jan 2019 22:16:20 +0000 (23:16 +0100)]
travis: pybind11 is not in xenial either

12 months agotravis: don't specify the boost version we need, to get the latest
Martin Quinson [Tue, 1 Jan 2019 22:11:40 +0000 (23:11 +0100)]
travis: don't specify the boost version we need, to get the latest

12 months agotravis: try to activate xenial images
Martin Quinson [Tue, 1 Jan 2019 22:02:05 +0000 (23:02 +0100)]
travis: try to activate xenial images

12 months agoRevert "try to hide a bug in tesh"
Martin Quinson [Tue, 1 Jan 2019 21:57:11 +0000 (22:57 +0100)]
Revert "try to hide a bug in tesh"

This reverts commit 2e7d753e6a256c3561db39a22aa5e2a5f502400a.

12 months agoAdd a missing file in the archive
Martin Quinson [Tue, 1 Jan 2019 21:56:56 +0000 (22:56 +0100)]
Add a missing file in the archive

12 months agotry to hide a bug in tesh
Martin Quinson [Tue, 1 Jan 2019 18:59:54 +0000 (19:59 +0100)]
try to hide a bug in tesh

It seems to lose the CWD for some reasons. Here is a log example:

[Tesh/INFO] change directory to /builds/workspace/SimGrid/build_mode/ModelChecker/node/simgrid-ubuntu-xenial-32/build/SimGrid-3.21.90/examples/python/actor-create
[...]
[actor-create.tesh:3] python3 /builds/workspace/SimGrid/build_mode/ModelChecker/node/simgrid-ubuntu-xenial-32/build/SimGrid-3.21.90/examples/python/actor-create/actor-create.py
[...]
+[...]  [xbt/CRITICAL] Unable to open 'actor-create_d.xml' from '/builds/workspace/SimGrid/build_mode/ModelChecker/node/simgrid-ubuntu-xenial-32/build/SimGrid-3.21.90/examples/python'

12 months agouse named parameters instead of overloads for py::execute
Martin Quinson [Tue, 1 Jan 2019 10:57:24 +0000 (11:57 +0100)]
use named parameters instead of overloads for py::execute

12 months agotesh: try harder to not loose the cwd between threads
Martin Quinson [Tue, 1 Jan 2019 10:22:21 +0000 (11:22 +0100)]
tesh: try harder to not loose the cwd between threads

12 months agoxbt::Path: do not ignore the return value of getcwd
Martin Quinson [Mon, 31 Dec 2018 18:22:00 +0000 (19:22 +0100)]
xbt::Path: do not ignore the return value of getcwd

12 months agoimprove an error message when a file cannot be open
Martin Quinson [Mon, 31 Dec 2018 17:38:16 +0000 (18:38 +0100)]
improve an error message when a file cannot be open

12 months agoNew function: xbt::Path() gets the CWD
Martin Quinson [Mon, 31 Dec 2018 17:37:41 +0000 (18:37 +0100)]
New function: xbt::Path() gets the CWD

12 months agopython: reorg to allow 'from simgrid import *' in scripts
Martin Quinson [Mon, 31 Dec 2018 14:59:55 +0000 (15:59 +0100)]
python: reorg to allow 'from simgrid import *' in scripts

12 months ago[travis] Add -j2 here too.
Arnaud Giersch [Mon, 31 Dec 2018 14:40:35 +0000 (15:40 +0100)]
[travis] Add -j2 here too.

12 months ago[travis] Try to improve running time with parallel executions.
Arnaud Giersch [Mon, 31 Dec 2018 14:16:31 +0000 (15:16 +0100)]
[travis] Try to improve running time with parallel executions.

12 months ago[sonar] Remove deprecated properties.
Arnaud Giersch [Mon, 31 Dec 2018 14:11:38 +0000 (15:11 +0100)]
[sonar] Remove deprecated properties.

12 months agodisable python on travis, as Trusty is too old
Martin Quinson [Mon, 31 Dec 2018 01:59:16 +0000 (02:59 +0100)]
disable python on travis, as Trusty is too old

12 months agotrailing spaces
Martin Quinson [Mon, 31 Dec 2018 01:56:39 +0000 (02:56 +0100)]
trailing spaces

12 months agopy: fix out of tree build testing
Martin Quinson [Mon, 31 Dec 2018 01:48:41 +0000 (02:48 +0100)]
py: fix out of tree build testing

12 months agopython: two more examples, the basics are here
Martin Quinson [Mon, 31 Dec 2018 01:31:47 +0000 (02:31 +0100)]
python: two more examples, the basics are here

12 months agopython: rename register_function into register_actor as it takes classes too
Martin Quinson [Mon, 31 Dec 2018 01:28:37 +0000 (02:28 +0100)]
python: rename register_function into register_actor as it takes classes too

12 months agopython: fix register_function when passed a class
Martin Quinson [Mon, 31 Dec 2018 01:26:07 +0000 (02:26 +0100)]
python: fix register_function when passed a class

12 months agopython: extend the bindings
Martin Quinson [Mon, 31 Dec 2018 00:33:57 +0000 (01:33 +0100)]
python: extend the bindings

WORKING:

- Mailbox::put and Mailbox::get
- simgrid.Actor.create("name", Fafard, callable)
  (with callable being either a function or an object implementing __call__(self)
- simgrid.Actor.create("name", Fafard, callable, param1, param2)
  (with callable taking 2 parameters)
- e.register_function("name", fun)
  (with fun being a function taking a tuple parameter)

NOT WORKING
- e.register_function("name", class)
  (with class being a class name implementing __init__(self, *args))

12 months agoemission does not seem to be the correct word here
Martin Quinson [Mon, 31 Dec 2018 00:32:55 +0000 (01:32 +0100)]
emission does not seem to be the correct word here

12 months agopython: improve the documentation
Martin Quinson [Fri, 28 Dec 2018 00:32:10 +0000 (01:32 +0100)]
python: improve the documentation

12 months agocosmetics.
Augustin Degomme [Fri, 28 Dec 2018 17:09:36 +0000 (18:09 +0100)]
cosmetics.

13 months agoupdate description of SImgrid ci job with NS3 and Python
Augustin Degomme [Fri, 28 Dec 2018 11:26:54 +0000 (12:26 +0100)]
update description of SImgrid ci job with NS3 and Python