Discussion:
[Cocci] sending out trewide patches
Julia Lawall
2018-10-27 06:38:02 UTC
Permalink
Hello,

At OSS Europe, I got some questions about how to send out large
Coccinelle-generated patches. Coccinelle provides a tool tools/splitpatch
(go to the tools subdirectory of the Coccinelle distribution and run make)
that splits patches by set of maintainers (the default), by directory
(--dirmerge option), or by file (--nomerge option). There is a file
tools/splitpatch.README that explains the various ways that it can be
used, but the simplest is to create a patch normally using
git format-patch -s, obtaining eg 0001-changes.patch, and then run

splitpatch 0001-changes.patch

The output will include a 0001-changes.cover file, a set of
0001-changesN.patch files with the various split patches, and a
0001-changes.cmd file for sending it off with git send-email.

This is available in the latest github version of Coccinelle. Comments
are welcome.

julia
Julia Lawall
2018-10-27 18:08:33 UTC
Permalink
Post by Julia Lawall
Hello,
At OSS Europe, I got some questions about how to send out large
Coccinelle-generated patches. Coccinelle provides a tool tools/splitpatch
(go to the tools subdirectory of the Coccinelle distribution and run make)
that splits patches by set of maintainers (the default), by directory
(--dirmerge option), or by file (--nomerge option). There is a file
tools/splitpatch.README that explains the various ways that it can be
used, but the simplest is to create a patch normally using
git format-patch -s, obtaining eg 0001-changes.patch, and then run
splitpatch 0001-changes.patch
The output will include a 0001-changes.cover file, a set of
0001-changesN.patch files with the various split patches, and a
0001-changes.cmd file for sending it off with git send-email.
This is available in the latest github version of Coccinelle. Comments
are welcome.
Thank you, Julia! I will give it a try.
Thanx, Paul
PS. And in case you didn't make it there... ;-)
https://www.spatchchicken.co.uk/
https://www.spatchchicken.co.uk/about-us.html
Amazing. Thanks!

julia
Julia Lawall
2018-10-30 19:56:01 UTC
Permalink
Post by Julia Lawall
Hello,
At OSS Europe, I got some questions about how to send out large
Coccinelle-generated patches. Coccinelle provides a tool tools/splitpatch
(go to the tools subdirectory of the Coccinelle distribution and run make)
that splits patches by set of maintainers (the default), by directory
(--dirmerge option), or by file (--nomerge option). There is a file
tools/splitpatch.README that explains the various ways that it can be
used, but the simplest is to create a patch normally using
git format-patch -s, obtaining eg 0001-changes.patch, and then run
splitpatch 0001-changes.patch
The output will include a 0001-changes.cover file, a set of
0001-changesN.patch files with the various split patches, and a
0001-changes.cmd file for sending it off with git send-email.
This is available in the latest github version of Coccinelle. Comments
are welcome.
Thank you, Julia! I will give it a try.
Does the following error message mean that I need a more up-to-date
version of ocaml or some such?
Thanx, Paul
Error: The implementation globals/config.ml
The field `python_interpreter' is required but not provided
The field `ocaml_version' is required but not provided
The field `configure_flags' is required but not provided
The field `get_temp_dir_name' is required but not provided
make: *** [globals/config.cmo] Error 2
I'm not familiar with that. I assume you started with the github version
of Coccinelle. Then ./autogen and ./configure. Then make. A recent
version of OCaml would indeed be good. Maybe running make distclean
before ./autogen would be good. The inconsistencies suggest that you have
some old compiled code hanging around. The build infrastructure has
changed a lot recently, so it might not be managing code that predates the
changes in a way that you would expect.

julia
Paul E. McKenney
2018-10-30 20:04:30 UTC
Permalink
Post by Julia Lawall
Post by Julia Lawall
Hello,
At OSS Europe, I got some questions about how to send out large
Coccinelle-generated patches. Coccinelle provides a tool tools/splitpatch
(go to the tools subdirectory of the Coccinelle distribution and run make)
that splits patches by set of maintainers (the default), by directory
(--dirmerge option), or by file (--nomerge option). There is a file
tools/splitpatch.README that explains the various ways that it can be
used, but the simplest is to create a patch normally using
git format-patch -s, obtaining eg 0001-changes.patch, and then run
splitpatch 0001-changes.patch
The output will include a 0001-changes.cover file, a set of
0001-changesN.patch files with the various split patches, and a
0001-changes.cmd file for sending it off with git send-email.
This is available in the latest github version of Coccinelle. Comments
are welcome.
Thank you, Julia! I will give it a try.
Does the following error message mean that I need a more up-to-date
version of ocaml or some such?
Thanx, Paul
Error: The implementation globals/config.ml
The field `python_interpreter' is required but not provided
The field `ocaml_version' is required but not provided
The field `configure_flags' is required but not provided
The field `get_temp_dir_name' is required but not provided
make: *** [globals/config.cmo] Error 2
I'm not familiar with that. I assume you started with the github version
of Coccinelle. Then ./autogen and ./configure. Then make. A recent
version of OCaml would indeed be good. Maybe running make distclean
before ./autogen would be good. The inconsistencies suggest that you have
some old compiled code hanging around. The build infrastructure has
changed a lot recently, so it might not be managing code that predates the
changes in a way that you would expect.
Good point, that does work much better. Now -this- error message
seems to be me having an old ocaml:

ocamlfind ocamlopt -c -no-alias-deps stdcompat__weak.mli -o stdcompat__weak.cmi
ocamlopt: unknown option `-no-alias-deps'.

Will get a new one and see how it goes... ;-)

Thanx, Paul
Julia Lawall
2018-10-30 20:09:27 UTC
Permalink
Post by Paul E. McKenney
Post by Julia Lawall
Post by Julia Lawall
Hello,
At OSS Europe, I got some questions about how to send out large
Coccinelle-generated patches. Coccinelle provides a tool tools/splitpatch
(go to the tools subdirectory of the Coccinelle distribution and run make)
that splits patches by set of maintainers (the default), by directory
(--dirmerge option), or by file (--nomerge option). There is a file
tools/splitpatch.README that explains the various ways that it can be
used, but the simplest is to create a patch normally using
git format-patch -s, obtaining eg 0001-changes.patch, and then run
splitpatch 0001-changes.patch
The output will include a 0001-changes.cover file, a set of
0001-changesN.patch files with the various split patches, and a
0001-changes.cmd file for sending it off with git send-email.
This is available in the latest github version of Coccinelle. Comments
are welcome.
Thank you, Julia! I will give it a try.
Does the following error message mean that I need a more up-to-date
version of ocaml or some such?
Thanx, Paul
Error: The implementation globals/config.ml
The field `python_interpreter' is required but not provided
The field `ocaml_version' is required but not provided
The field `configure_flags' is required but not provided
The field `get_temp_dir_name' is required but not provided
make: *** [globals/config.cmo] Error 2
I'm not familiar with that. I assume you started with the github version
of Coccinelle. Then ./autogen and ./configure. Then make. A recent
version of OCaml would indeed be good. Maybe running make distclean
before ./autogen would be good. The inconsistencies suggest that you have
some old compiled code hanging around. The build infrastructure has
changed a lot recently, so it might not be managing code that predates the
changes in a way that you would expect.
Good point, that does work much better. Now -this- error message
ocamlfind ocamlopt -c -no-alias-deps stdcompat__weak.mli -o stdcompat__weak.cmi
ocamlopt: unknown option `-no-alias-deps'.
Will get a new one and see how it goes... ;-)
What version do you have? I thought that the makefile would detect
unsupported versions, so perhaps that check needs to be improved.

julia
Paul E. McKenney
2018-10-30 20:35:33 UTC
Permalink
Post by Julia Lawall
Post by Paul E. McKenney
Post by Julia Lawall
Post by Julia Lawall
Hello,
At OSS Europe, I got some questions about how to send out large
Coccinelle-generated patches. Coccinelle provides a tool tools/splitpatch
(go to the tools subdirectory of the Coccinelle distribution and run make)
that splits patches by set of maintainers (the default), by directory
(--dirmerge option), or by file (--nomerge option). There is a file
tools/splitpatch.README that explains the various ways that it can be
used, but the simplest is to create a patch normally using
git format-patch -s, obtaining eg 0001-changes.patch, and then run
splitpatch 0001-changes.patch
The output will include a 0001-changes.cover file, a set of
0001-changesN.patch files with the various split patches, and a
0001-changes.cmd file for sending it off with git send-email.
This is available in the latest github version of Coccinelle. Comments
are welcome.
Thank you, Julia! I will give it a try.
Does the following error message mean that I need a more up-to-date
version of ocaml or some such?
Thanx, Paul
Error: The implementation globals/config.ml
The field `python_interpreter' is required but not provided
The field `ocaml_version' is required but not provided
The field `configure_flags' is required but not provided
The field `get_temp_dir_name' is required but not provided
make: *** [globals/config.cmo] Error 2
I'm not familiar with that. I assume you started with the github version
of Coccinelle. Then ./autogen and ./configure. Then make. A recent
version of OCaml would indeed be good. Maybe running make distclean
before ./autogen would be good. The inconsistencies suggest that you have
some old compiled code hanging around. The build infrastructure has
changed a lot recently, so it might not be managing code that predates the
changes in a way that you would expect.
Good point, that does work much better. Now -this- error message
ocamlfind ocamlopt -c -no-alias-deps stdcompat__weak.mli -o stdcompat__weak.cmi
ocamlopt: unknown option `-no-alias-deps'.
Will get a new one and see how it goes... ;-)
What version do you have? I thought that the makefile would detect
unsupported versions, so perhaps that check needs to be improved.
I am running 4.0.3 and now installing 4.0.5.

Thanx, Paul
Paul E. McKenney
2018-10-30 20:54:13 UTC
Permalink
Post by Paul E. McKenney
Post by Julia Lawall
Post by Paul E. McKenney
Post by Julia Lawall
Post by Julia Lawall
Hello,
At OSS Europe, I got some questions about how to send out large
Coccinelle-generated patches. Coccinelle provides a tool tools/splitpatch
(go to the tools subdirectory of the Coccinelle distribution and run make)
that splits patches by set of maintainers (the default), by directory
(--dirmerge option), or by file (--nomerge option). There is a file
tools/splitpatch.README that explains the various ways that it can be
used, but the simplest is to create a patch normally using
git format-patch -s, obtaining eg 0001-changes.patch, and then run
splitpatch 0001-changes.patch
The output will include a 0001-changes.cover file, a set of
0001-changesN.patch files with the various split patches, and a
0001-changes.cmd file for sending it off with git send-email.
This is available in the latest github version of Coccinelle. Comments
are welcome.
Thank you, Julia! I will give it a try.
Does the following error message mean that I need a more up-to-date
version of ocaml or some such?
Thanx, Paul
Error: The implementation globals/config.ml
The field `python_interpreter' is required but not provided
The field `ocaml_version' is required but not provided
The field `configure_flags' is required but not provided
The field `get_temp_dir_name' is required but not provided
make: *** [globals/config.cmo] Error 2
I'm not familiar with that. I assume you started with the github version
of Coccinelle. Then ./autogen and ./configure. Then make. A recent
version of OCaml would indeed be good. Maybe running make distclean
before ./autogen would be good. The inconsistencies suggest that you have
some old compiled code hanging around. The build infrastructure has
changed a lot recently, so it might not be managing code that predates the
changes in a way that you would expect.
Good point, that does work much better. Now -this- error message
ocamlfind ocamlopt -c -no-alias-deps stdcompat__weak.mli -o stdcompat__weak.cmi
ocamlopt: unknown option `-no-alias-deps'.
Will get a new one and see how it goes... ;-)
What version do you have? I thought that the makefile would detect
unsupported versions, so perhaps that check needs to be improved.
I am running 4.0.3 and now installing 4.0.5.
But, sad to say, I get the same coccinelle build error on v4.0.5 ocaml.

Enlightenment?

Thanx, Paul
Julia Lawall
2018-10-30 21:11:20 UTC
Permalink
Post by Paul E. McKenney
Post by Paul E. McKenney
Post by Julia Lawall
Post by Paul E. McKenney
Post by Julia Lawall
Post by Julia Lawall
Hello,
At OSS Europe, I got some questions about how to send out large
Coccinelle-generated patches. Coccinelle provides a tool tools/splitpatch
(go to the tools subdirectory of the Coccinelle distribution and run make)
that splits patches by set of maintainers (the default), by directory
(--dirmerge option), or by file (--nomerge option). There is a file
tools/splitpatch.README that explains the various ways that it can be
used, but the simplest is to create a patch normally using
git format-patch -s, obtaining eg 0001-changes.patch, and then run
splitpatch 0001-changes.patch
The output will include a 0001-changes.cover file, a set of
0001-changesN.patch files with the various split patches, and a
0001-changes.cmd file for sending it off with git send-email.
This is available in the latest github version of Coccinelle. Comments
are welcome.
Thank you, Julia! I will give it a try.
Does the following error message mean that I need a more up-to-date
version of ocaml or some such?
Thanx, Paul
Error: The implementation globals/config.ml
The field `python_interpreter' is required but not provided
The field `ocaml_version' is required but not provided
The field `configure_flags' is required but not provided
The field `get_temp_dir_name' is required but not provided
make: *** [globals/config.cmo] Error 2
I'm not familiar with that. I assume you started with the github version
of Coccinelle. Then ./autogen and ./configure. Then make. A recent
version of OCaml would indeed be good. Maybe running make distclean
before ./autogen would be good. The inconsistencies suggest that you have
some old compiled code hanging around. The build infrastructure has
changed a lot recently, so it might not be managing code that predates the
changes in a way that you would expect.
Good point, that does work much better. Now -this- error message
ocamlfind ocamlopt -c -no-alias-deps stdcompat__weak.mli -o stdcompat__weak.cmi
ocamlopt: unknown option `-no-alias-deps'.
Will get a new one and see how it goes... ;-)
What version do you have? I thought that the makefile would detect
unsupported versions, so perhaps that check needs to be improved.
I am running 4.0.3 and now installing 4.0.5.
But, sad to say, I get the same coccinelle build error on v4.0.5 ocaml.
I'm not so familiar with the OCaml version numbering system. Mine is
4.06.0. I don't see anything like 4.0.5 at https://ocaml.org/releases/

A buzilla entry suggests that this option has existed since OCaml 4.02.1.

julia

Loading...