On Tue, 25 Aug 2015, SF Markus Elfring wrote:

> >> Does the parallelisation support need any more fine-tuning?
> >> * How often is task preparation required before further data processing
> >>   can be performed in parallel?
> >>
> >> * Which programming interfaces do you prefer for the storage
> >>   of collected data in the fork-join work flow?
> > 
> > No idea what either of these questions mean, but the whole point is that
> > there is no join.
> 
> This view needs an adjustment.
> 
> A fork-join work flow is implemented by the Coccinelle software for
> its main programs with the help of the application programming interface 
> "parmap",
> isn't it?
> https://rdicosmo.github.io/parmap/

Parmap only forks.  It can join what is returned explicitly.  The problem 
is that the scripting language environment is separate from the 
environment of Coccinelle itself.  So there is no easy way to get the 
right values into the right variables.  Coccinelle doesn't know anything 
about the variables of the ocaml or python scripts.

> The manual contains the following information for this approach.
> * Preparation for spawning subprocesses:
>   "This option furthermore creates a temporary directory in the directory
>   from which spatch is executed that has the name of the semantic patch
>   (without its extension) and that contains stdout and stderr files
>   generated by the various processes."
> 
> * Actions for joining:
>   "When the semantic patch completes, the contents of these files are printed
>   to standard output and standard error, respectively, and the directory
>   is removed."

Yes but stndard output is a global thing.

> 
> I propose to reactivate the support for the SmPL rules "initialize" and 
> "finalize"
> for all uses cases without unwanted software limitations.

There is no way that Coccinelle can tell what is a "use case with an 
unwanted software limitation.  Coccinelle doesn't know what the scripting 
code does.  I would prefer not to promise a behavior that is not 
implemented.  As I said before, if an unshared initialize and finalize are 
acceptable to you, then just use the preexisting parallelism solution, 
which is still supported.

julia
_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to