Re: C++17 skeleton with move semantics and std::variant

2018-04-18 Thread Hans Åberg
> On 18 Apr 2018, at 11:19, Frank Heckenbach wrote: > > Hans Åberg wrote: > >> Indeed. Others, may not want to patch their installations even it >> they can, as it may cause problems for other packages. Say if one >> writes package that uses a standard Bison installation, then it >> would be d

Re: C++17 skeleton with move semantics and std::variant

2018-04-18 Thread Frank Heckenbach
Hans Åberg wrote: > Indeed. Others, may not want to patch their installations even it > they can, as it may cause problems for other packages. Say if one > writes package that uses a standard Bison installation, then it > would be dangerous to patch it up with an experimental one. Not really dang

Re: C++17 skeleton with move semantics and std::variant

2018-04-18 Thread Hans Åberg
> On 18 Apr 2018, at 10:03, Frank Heckenbach wrote: > > Hans Åberg wrote: > >>> On 14 Apr 2018, at 10:19, Frank Heckenbach wrote: >>> >>> Hans Åberg wrote: >>> >> Before it gets integrated into the Bison distribution, you might >> want to put it in the package source directory.

Re: C++17 skeleton with move semantics and std::variant

2018-04-18 Thread Frank Heckenbach
Hans Åberg wrote: > > On 14 Apr 2018, at 10:19, Frank Heckenbach wrote: > > > > Hans Åberg wrote: > > > Before it gets integrated into the Bison distribution, you might > want to put it in the package source directory. > >>> > >>> I won't for my code (but you, or anyone else, may wan

Re: C++17 skeleton with move semantics and std::variant

2018-04-14 Thread Hans Åberg
> On 14 Apr 2018, at 10:19, Frank Heckenbach wrote: > > Hans Åberg wrote: > Before it gets integrated into the Bison distribution, you might want to put it in the package source directory. >>> >>> I won't for my code (but you, or anyone else, may want to). FWIW, I >>> need patches t

Re: C++17 skeleton with move semantics and std::variant

2018-04-14 Thread Frank Heckenbach
Hans Åberg wrote: > >> Before it gets integrated into the Bison distribution, you might > >> want to put it in the package source directory. > > > > I won't for my code (but you, or anyone else, may want to). FWIW, I > > need patches to some Debian packages, some of them for years as many > > mai

Re: C++17 skeleton with move semantics and std::variant

2018-04-14 Thread Hans Åberg
> On 14 Apr 2018, at 07:33, Frank Heckenbach wrote: > > Hans Åberg wrote: > >>> On 10 Apr 2018, at 17:24, Frank Heckenbach wrote: >>> >>> Hans Åberg wrote: >>> Rename, if possible, all these patched files to location-c++17.cc, stack-c++17.hh, etc, as they are not in the original d

Re: C++17 skeleton with move semantics and std::variant

2018-04-13 Thread Frank Heckenbach
Hans Åberg wrote: > > On 10 Apr 2018, at 17:24, Frank Heckenbach wrote: > > > > Hans Åberg wrote: > > > >> Rename, if possible, all these patched files to location-c++17.cc, > >> stack-c++17.hh, etc, as they are not in the original distribution. > > > > I called it stack-c++11.hh because it on

Re: C++17 skeleton with move semantics and std::variant

2018-04-13 Thread Frank Heckenbach
Hans Åberg wrote: > > And I've explained why I didn't rename > > location.cc. If you disagree, please reply to those posts of mine. > > You said it is the same, but 'patch' reported it patched, and it > did not work with the original. So it should probably have a > different name to avoid confusi

Re: C++17 skeleton with move semantics and std::variant

2018-04-11 Thread Hans Åberg
> On 10 Apr 2018, at 17:24, Frank Heckenbach wrote: > > Hans Åberg wrote: > >> Rename, if possible, all these patched files to location-c++17.cc, >> stack-c++17.hh, etc, as they are not in the original distribution. > > I called it stack-c++11.hh because it only uses move (C++11), not > varia

Re: C++17 skeleton with move semantics and std::variant

2018-04-10 Thread Hans Åberg
> On 10 Apr 2018, at 17:24, Frank Heckenbach wrote: > > Hans Åberg wrote: > >>> Don't forget to copy location.cc back to /usr/local/share/bison/. >>> As I said, this file is the same between the old (C++03) and new >>> (C++17) skeletons and therefore not included in my new skeleton. >>> (You ca

Re: C++17 skeleton with move semantics and std::variant

2018-04-10 Thread Frank Heckenbach
Hans Åberg wrote: > > Don't forget to copy location.cc back to /usr/local/share/bison/. > > As I said, this file is the same between the old (C++03) and new > > (C++17) skeletons and therefore not included in my new skeleton. > > (You can also copy back stack.hh and lalr1.cc, if you want full > >

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Hans Åberg
> On 9 Apr 2018, at 20:36, Frank Heckenbach wrote: > > Hans Åberg wrote: > So, try this: cd /usr/share/bison sudo patch < /path/to/extra-header-prefix.diff cd /your/source/dir rm -f stack.hh position.hh location.hh make clean make >>> >>> I wouldn't do

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Frank Heckenbach
Hans Åberg wrote: > >> So, try this: > >> > >> cd /usr/share/bison > >> sudo patch < /path/to/extra-header-prefix.diff > >> cd /your/source/dir > >> rm -f stack.hh position.hh location.hh > >> make clean > >> make > > > > I wouldn't do that for two reasons: screwing up the installation, and > >

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Hans Åberg
> On 9 Apr 2018, at 20:25, Frank Heckenbach wrote: > > Hans Åberg wrote: > >>> So, try this: >>> >>> cd /usr/share/bison >>> sudo patch < /path/to/extra-header-prefix.diff >>> cd /your/source/dir >>> rm -f stack.hh position.hh location.hh >>> make clean >>> make >> >> I wouldn't do that for t

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Hans Åberg
> On 9 Apr 2018, at 20:15, Hans Åberg wrote: > >> On 9 Apr 2018, at 19:19, Frank Heckenbach wrote: >> >> Hans Åberg wrote: >> >> You should apply the patch in /usr/share/bison (or your respective >> Bison data directory), not in your build directory (where a stack.hh >> exists, but is differ

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Frank Heckenbach
Hans Åberg wrote: > > So, try this: > > > > cd /usr/share/bison > > sudo patch < /path/to/extra-header-prefix.diff > > cd /your/source/dir > > rm -f stack.hh position.hh location.hh > > make clean > > make > > I wouldn't do that for two reasons: screwing up the installation, > and security reaso

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Hans Åberg
> On 9 Apr 2018, at 19:19, Frank Heckenbach wrote: > > Hans Åberg wrote: > > You should apply the patch in /usr/share/bison (or your respective > Bison data directory), not in your build directory (where a stack.hh > exists, but is different, being generated from the stack.hh > template, so th

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Frank Heckenbach
Hans Åberg wrote: > Not that the patch is not for files with 'c++17-' in them. Exactly. For the c++1[17] files, I provided the patched ones in my original archive. But location.cc is used otherwise unchanged, so it needs to be patched separately (didn't want to call it location-c++17.cc as there'

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Hans Åberg
> On 9 Apr 2018, at 18:55, Frank Heckenbach wrote: > > Hans Åberg wrote: > >>> position.hh is also generated from location.cc (a bit confusing >>> perhaps; not my choice). If you remove all generated files and start >>> from scratch, does it work for you with the above patch? >> >> It is malfo

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Frank Heckenbach
Hans Åberg wrote: > > position.hh is also generated from location.cc (a bit confusing > > perhaps; not my choice). If you remove all generated files and start > > from scratch, does it work for you with the above patch? > > It is malformed, perhaps mangled by the mailing system: they > should be

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Hans Åberg
> On 9 Apr 2018, at 18:19, Frank Heckenbach wrote: > > Hans Åberg wrote: > >>> On 9 Apr 2018, at 17:04, Frank Heckenbach wrote: >>> The option %define extra_header_prefix {calc-c++17-} does not seem to work: I got both location.hh and position.hh. >>> >>> Ah, sorry, I think yo

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Hans Åberg
> On 9 Apr 2018, at 18:17, Frank Heckenbach wrote: > > Hans Åberg wrote: > >>> So for C++ we could either go back and disable the static type >>> checking completely, or do full dynamic checking (which std::variant >>> does by itself). I choose the latter. As you said, the performance >>> impac

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Hans Åberg
> On 9 Apr 2018, at 18:16, Frank Heckenbach wrote: > > Hans Åberg wrote: > One can have a preprocessor macro '#if (__cplusplus == 201703L) ...', would it be of interest. >>> >>> What would it do? (BTW, I think it should be ">=".) >> >> Something like, but with suitable template arg

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Hans Åberg
> On 9 Apr 2018, at 18:16, Frank Heckenbach wrote: > > Hans Åberg wrote: > One can have a preprocessor macro '#if (__cplusplus == 201703L) ...', would it be of interest. >>> >>> What would it do? (BTW, I think it should be ">=".) >> >> Something like, but with suitable template ar

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Frank Heckenbach
Hans Åberg wrote: > > On 9 Apr 2018, at 17:04, Frank Heckenbach wrote: > > > >> The option > >> %define extra_header_prefix {calc-c++17-} > >> does not seem to work: I got both location.hh and position.hh. > > > > Ah, sorry, I think you need to apply my original patch from > > > > http://lis

Re: *** GMX Spamverdacht *** Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Frank Heckenbach
Hans Åberg wrote: > > So for C++ we could either go back and disable the static type > > checking completely, or do full dynamic checking (which std::variant > > does by itself). I choose the latter. As you said, the performance > > impact should be small, and the safety benefit substantial. (If >

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Frank Heckenbach
Hans Åberg wrote: > >> One can have a preprocessor macro '#if (__cplusplus == 201703L) ...', > >> would it be of interest. > > > > What would it do? (BTW, I think it should be ">=".) > > Something like, but with suitable template arguments: > > #if !(__cplusplus >= 201703L) > namespace std { >

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Hans Åberg
> On 9 Apr 2018, at 17:04, Frank Heckenbach wrote: > >> The option >> %define extra_header_prefix {calc-c++17-} >> does not seem to work: I got both location.hh and position.hh. > > Ah, sorry, I think you need to apply my original patch from > > http://lists.gnu.org/archive/html/bug-bison/20

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Hans Åberg
> On 9 Apr 2018, at 16:55, Frank Heckenbach wrote: > > Hans Åberg wrote: > But, anyway, GCC7 supports C++17. >>> >>> Yes, and I've also tested it with gcc-6 with mpark's variant. >> >> One can have a preprocessor macro '#if (__cplusplus == 201703L) ...', would >> it be of interest. > >

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Hans Åberg
> On 9 Apr 2018, at 16:55, Frank Heckenbach wrote: > > Hans Åberg wrote: > Akim Demaille gave two motivations on not using this: avoiding the external dependency, and the overhead of storing the type. I think that the C++17 variants may have the latter, but it is not so impo

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Frank Heckenbach
Hans Åberg wrote: > (As for the Makefile might have 'CXX = g++': My GCC7 is not named 'g++-7'.) Indeed. That was left over from my various tests. > The option > %define extra_header_prefix {calc-c++17-} > does not seem to work: I got both location.hh and position.hh. Ah, sorry, I think you ne

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Frank Heckenbach
Hans Åberg wrote: > >> Akim Demaille gave two motivations on not using this: avoiding the > >> external dependency, and the overhead of storing the type. I think > >> that the C++17 variants may have the latter, but it is not so > >> important on modern computers. > > > > Yes, they do, and it's n

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Hans Åberg
> On 8 Apr 2018, at 23:05, Frank Heckenbach wrote: > > Following the discussion starting in > http://lists.gnu.org/archive/html/bug-bison/2018-03/msg2.html > I have implemented a Bison skeleton for C++17 supporting features > such as move semantics and std::variant, based on the existing C++

Re: C++17 skeleton with move semantics and std::variant

2018-04-09 Thread Hans Åberg
> On 9 Apr 2018, at 00:17, Frank Heckenbach wrote: > >>> On 8 Apr 2018, at 23:05, Frank Heckenbach wrote: >> >>> - Uses std::variant (C++17) instead of Bison's own variant >>> implementation. >>> >>> If you don't have C++17 support yet, you can use an alternative >>> variant implementation su

Re: C++17 skeleton with move semantics and std::variant

2018-04-08 Thread Frank Heckenbach
Hans Åberg wrote: > > On 8 Apr 2018, at 23:05, Frank Heckenbach wrote: > > > - Uses std::variant (C++17) instead of Bison's own variant > > implementation. > > > > If you don't have C++17 support yet, you can use an alternative > > variant implementation such as https://github.com/mpark/vari

Re: C++17 skeleton with move semantics and std::variant

2018-04-08 Thread Hans Åberg
> On 8 Apr 2018, at 23:05, Frank Heckenbach wrote: > - Uses std::variant (C++17) instead of Bison's own variant > implementation. > > If you don't have C++17 support yet, you can use an alternative > variant implementation such as https://github.com/mpark/variant . > Boost.Variant might als

C++17 skeleton with move semantics and std::variant

2018-04-08 Thread Frank Heckenbach
Hi, Following the discussion starting in http://lists.gnu.org/archive/html/bug-bison/2018-03/msg2.html I have implemented a Bison skeleton for C++17 supporting features such as move semantics and std::variant, based on the existing C++ skeleton. It is included in this mail. To use the new ske