All of lore.kernel.org
 help / color / mirror / Atom feed
From: michelemartone@users.sourceforge.net (Michele Martone)
To: cocci@systeme.lip6.fr
Subject: [Cocci] [cocci-bug] coccinelle 1.0.6: OpenMP #pragma directive leads to function ignore
Date: Mon, 30 Apr 2018 09:47:28 +0200	[thread overview]
Message-ID: <20180430074728.GB20750@localhost> (raw)
In-Reply-To: <alpine.DEB.2.20.1804300940580.2351@hadrien>

On 20180430 at 09:42, Julia Lawall wrote:
> 
> 
> On Mon, 30 Apr 2018, Michele Martone wrote:
> 
> > On 20180430 at 08:43, Julia Lawall wrote:
> > > On Thu, 26 Apr 2018, Michele Martone wrote:
> > >
> > > > On 20180426 at 09:25, Julia Lawall wrote:
> > > > > On Thu, 26 Apr 2018, Michele Martone wrote:
> > > > >
> > > > > > Dear Prof. Lawall and Coccinelle team,
> > > > > >
> > > > > > I'm an enthusiastical, however still beginner use of Coccinelle.
> > > > > >
> > > > > > While running spatch 1.0.6 on a long OpenMP-enabled listing, I
> > > > > > noticed that the presence of the C line:
> > > > > >  #pragma omp parallel for reduction(+:I) private(I)
> > > > > > seems to prevent restructuring of the function containing it.
> > > > > > If I simplify the pragma to something like
> > > > > >  #pragma omp parallel
> > > > > > the problem disappears.
> > > > > >
> > > > > > Is there anything I can do to restructure large codes containing
> > > > > > many of such similar lines ?
> > > > > >
> > > > > > In the attachment you find a test case and the output I experience.
> > > > >
> > > > > Thanks for the report.  We can try to make the parsing of #pragmas more
> > > > > flexible.
> > > > >
> > > > > julia
> > > >
> > > > Dear Julia,
> > > >
> > > > thanks for the quick response!
> > > >
> > > > I'll be waiting for Coccinelle-sided developments then.
> > > >
> > > > May I ask what would you recommend now to circumvent this ?
> > > >
> > > > From the SmPL v1.0.6 Grammar I am not aware of any way to
> > > > e.g. ignore pragma lines as they were comments.
> > > >
> > > > So the best what comes to my mind is to:
> > > >
> > > >  - comment #pragma lines
> > > >  - compute semantic patch
> > > >  - apply   semantic patch
> > > >  - uncomment #pragma lines
> > > >
> > > > If there is any better solution, please let me know.
> > >
> > > The problem is now fixed in the github version of Coccinelle.
> > >
> > > julia
> >
> > That is good news -- thank you :-)
> >
> > Handling such pragma lines opens new ranges of use for Coccinelle!
> >
> > On my side, I just followed install.txt:
> >
> > #!/bin/bash
> > set -e
> > set -x
> > trap "read" EXIT # will block for input on error
> > git clone https://github.com/coccinelle/coccinelle.git
> > cd coccinelle
> > ./autogen
> > ./configure
> > make # it stops here
> > # make install
> >
> > and it reaches:
> >
> > ...
> > OCAMLOPT  enter.ml
> > OCAMLC    main.mli
> > OCAMLOPT  main.ml
> > OCAMLOPT  -o spatch.opt
> > /usr/lib64/ocaml/libbigarray.a(bigarray_stubs.o): In function `caml_ba_deserialize':
> > /home/abuild/rpmbuild/BUILD/ocaml-4.03.0/otherlibs/bigarray/bigarray_stubs.c:979: undefined reference to `caml_umul_overflow'
> > /home/abuild/rpmbuild/BUILD/ocaml-4.03.0/otherlibs/bigarray/bigarray_stubs.c:985: undefined reference to `caml_umul_overflow'
> > collect2: error: ld returned 1 exit status
> > File "caml_startup", line 1:
> > Error: Error during linking
> > Makefile:609: recipe for target 'spatch.opt' failed
> > make: *** [spatch.opt] Error 2
> > rm parsing_cocci/lexer_cli.ml parsing_cocci/parser_cocci_menhir.ml.d parsing_cocci/parser_cocci_menhir.mli.d parsing_cocci/lexer_script.ml parsing_cocci/lexer_cocci.ml parsing_c/lexer_c.ml
> > + read
> >
> > It's my first experience building any ocaml-based software, so
> > I would appreciate any hint how to proceed further, if possible.
> 
> Oops, I'll forward this to my engineer, who knows about building issues.
> I'm not sure if he will answer before Wednesday, due to the holiday.
> What is your OS?

 $ cat /etc/os-release 
 NAME="openSUSE Leap"
 VERSION="42.3"
 ID=opensuse
 ID_LIKE="suse"
 VERSION_ID="42.3"
 PRETTY_NAME="openSUSE Leap 42.3"
 ANSI_COLOR="0;32"
 CPE_NAME="cpe:/o:opensuse:leap:42.3"

thanks!

  reply	other threads:[~2018-04-30  7:47 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-26  8:12 [Cocci] [cocci-bug] coccinelle 1.0.6: OpenMP #pragma directive leads to function ignore Michele Martone
2018-04-26  8:25 ` Julia Lawall
2018-04-26 10:21   ` Michele Martone
2018-04-26 10:22     ` Julia Lawall
2018-04-30  6:43     ` Julia Lawall
2018-04-30  7:39       ` Michele Martone
2018-04-30  7:42         ` Julia Lawall
2018-04-30  7:47           ` Michele Martone [this message]
2018-04-30  7:44         ` Peter Senna Tschudin
2018-05-02 13:16           ` Michele Martone
2018-05-25 13:56             ` Michele Martone
2018-04-26 13:01   ` [Cocci] Coccinelle " SF Markus Elfring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180430074728.GB20750@localhost \
    --to=michelemartone@users.sourceforge.net \
    --cc=cocci@systeme.lip6.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.