[ANN] build2 - C++ build toolchain

2016-02-03 Thread Boris Kolpackov
Hi, build2 is an open source, cross-platform toolchain for building and packaging C++ code. It includes a build system, package manager, and repository web interface. We've also started cppget.org, a public repository of open source C++ packages. This is the first alpha release and currently it i

[ANN] CppCon 2014 program available

2014-07-02 Thread Boris Kolpackov
The CppCon 2014 Program is now available with talk titles, abstracts, and speakers: http://cppcon.org/conference-program/ The program contains over 100 one-hour sessions by over 70 speakers including plenary sessions by Scott Meyers and Herb Sutter, as well as the keynotes by C++ creator Bjarne S

[ANN] ODB C++ ORM 2.4.0 Released

2015-02-11 Thread Boris Kolpackov
Hi, I am pleased to announce the release of ODB 2.4.0. ODB is an open source object-relational mapping (ORM) system for C++. It allows you to persist C++ objects to a relational database without having to deal with tables, columns, or SQL and without manually writing any of the mapping code. ODB

Separate preprocess and compile: hack or feature?

2017-05-11 Thread Boris Kolpackov
Hi, In the build system I am working on we are looking at always performing the preprocessing and then C/C++ compilation as two separate gcc/g++ invocations. The main reason is support for distributed compilation but see here[1] for other reasons. I realize that tools like ccache/distcc have been

Re: Separate preprocess and compile: hack or feature?

2017-05-11 Thread Boris Kolpackov
Hi Jakub, Jakub Jelinek writes: > Especially in recent GCC versions the amount of differences for warnings and > errors keeps dramatically increasing, with separate preprocessing simply > too much information is lost (macro contexts, lint style comments, exact > locations, system header issues,

Re: Separate preprocess and compile: hack or feature?

2017-05-11 Thread Boris Kolpackov
Hi Nathan, Nathan Sidwell writes: > How c++ modules fit into a build system is currently an open question. > Richard Smith & I have talked about it, but with no firm conclusion. > However, I think that breaking out the preprocessor is not the right > answer. Handling modules is one of the least

[PATCH] Recognize '-' as special -MF argument (write to stdout)

2017-05-15 Thread Boris Kolpackov
Hi, Sometimes it is useful to generate pre-processed output to a file and the dependency information to stdout for further analysis/processing. For example: g++ -E -MD -fdirectives-only -o test.ii test.cxx This will generate the dependency information to test.d (as per the documentation). While

Separate preprocess and compile: some performance numbers

2017-05-18 Thread Boris Kolpackov
Hi, I have implemented the separate preprocess and compile setup in build2. For GCC it is using -fdirectives-only (thanks to everyone's suggestions in the earlier thread). I've also done some benchmarking: https://build2.org/article/preprocess-compile-performance.xhtml TL;DR for GCC: Surprising

[PATCH] Write dependency information (-M*) even if there are errors

2017-08-06 Thread Boris Kolpackov
F. Thanks, Boris Index: gcc/c-family/ChangeLog === --- gcc/c-family/ChangeLog (revision 250514) +++ gcc/c-family/ChangeLog (working copy) @@ -1,3 +1,8 @@ +2017-08-06 Boris Kolpackov + + * c-opts.c (c_common_finish): Write dependency i

Re: [PATCH] Write dependency information (-M*) even if there are errors

2017-08-12 Thread Boris Kolpackov
Joseph Myers writes: > I suppose a question for the present proposal would be making sure any > dependencies generated in this case do not include dependencies on files > that don't exist (so #include "some-misspelling.h" doesn't create any sort > of dependency on such a header). Good point.

Re: [PATCH] Write dependency information (-M*) even if there are errors

2017-08-12 Thread Boris Kolpackov
Boris Index: gcc/c-family/ChangeLog === --- gcc/c-family/ChangeLog (revision 250514) +++ gcc/c-family/ChangeLog (working copy) @@ -1,3 +1,8 @@ +2017-08-06 Boris Kolpackov + + * c-opts.c (c_common_finish): Write dependency informat

Re: [RFC] Adding Python as a possible language and it's usage

2018-07-18 Thread Boris Kolpackov
On Tue, 2018-07-17 at 14:49 +0200, Martin Liška wrote: > My question is simple: can we starting using a scripting language like > Python and replace usage of the AWK scripts? I wonder what will be the expected way to obtain a suitable version of Python if one is not available on the build machine

Re: [RFC] Adding Python as a possible language and it's usage

2018-07-18 Thread Boris Kolpackov
Paul Koning writes: > > On Jul 18, 2018, at 11:13 AM, Boris Kolpackov > > wrote: > > > > I wonder what will be the expected way to obtain a suitable version of > > Python if one is not available on the build machine? With awk I can > > build it from sour

Traversing typedef hierarchy in C/C++ tree

2011-04-20 Thread Boris Kolpackov
Hi, I am trying to figure out how to get a typedef hierarchy from the C/C++ tree in GCC. Consider the following declarations: struct s {}; typedef s s_t; typedef s_t my_s_t; my_s_t x; Giveb 'x' VAR_DECL I can have this traversal using TYPE_MAIN_VARIANT(): x -> my_s_t -> s; What I am trying t

Re: Traversing typedef hierarchy in C/C++ tree

2011-04-20 Thread Boris Kolpackov
Hi Jonathan, Jonathan Wakely writes: > I don't know if GCC keeps the information you want, but according to > the language rules there is no hierarchy. There's a type, and zero or > more alternative names for it. The example above makes my_s_t a > synonym for s, not s_t. Right. "Hierarchy" was

Re: Traversing typedef hierarchy in C/C++ tree

2011-04-20 Thread Boris Kolpackov
Hi Ian, Ian Lance Taylor writes: > As far as I know this is not possible. A typedef name is just an alias > for the underlying type. When you typedef T as TNAME, where T is itself > a typedef, GCC records that TNAME is a name for the underlying type of > T. It does not record an equivalence of

Re: Traversing typedef hierarchy in C/C++ tree

2011-04-21 Thread Boris Kolpackov
Hi Ian, Ian Lance Taylor writes: > Boris Kolpackov writes: > > > Yes, that's what I suspect. Which is unfortunate since GCC already creates > > all the nodes. All that is left is to establish a link between two types. > > While this is not necessary for C/C++ co

Re: Traversing typedef hierarchy in C/C++ tree

2011-04-22 Thread Boris Kolpackov
Hi Ian, Ian Lance Taylor writes: > Unfortunately we have discovered over time that all the memory usage > matters. A rule of thumb for gcc is that compilation speed is roughly > proportional to the amount of memory used. I think fundamentally the requirements of those who use GCC as just a com

Re: Traversing typedef hierarchy in C/C++ tree

2011-04-25 Thread Boris Kolpackov
Hi Dodji, Dodji Seketeli writes: > Boris Kolpackov a =C3=A9crit: > > > struct s {}; > > > > typedef s s_t; > > typedef s_t my_s_t; > > > > my_s_t x; > > > > In G++, let's say that the tree node representing my_s_t is t. Then, > DEC

Re: Traversing typedef hierarchy in C/C++ tree

2011-04-29 Thread Boris Kolpackov
Hi Dodji, Dodji Seketeli writes: > Boris Kolpackov a =C3=A9crit: > > > template > > struct wrap > > { > > typedef T w_s; > > }; > > > > typedef wrap::w_s w_s_t; > > > > Now if I traverse from w_s_t using DECL_ORIGINAL_TYPE I get:

Report: using GCC plugin to implement ORM for C++

2010-09-30 Thread Boris Kolpackov
Hi, We have just released a C++ object-relational mapping (ORM) system, called ODB, that uses the new GCC plugin architecture. I thought I would report back to the GCC community on how the plugin part worked out. In a nutshell, the ODB compiler parses a C++ header with class declarations (and so

Re: [modules] Preprocessing requires compiled header unit modules

2022-04-20 Thread Boris Kolpackov
Ben Boeckel writes: > However, for header unit modules, it runs into a problem that imported > header units are required to be compiled and available in the mapper > while scanning for dependencies. > > Example code: > > ```c++ # use-header.cpp > module; > > import "header-unit.hpp"; > > int

Re: [modules] Preprocessing requires compiled header unit modules

2022-04-22 Thread Boris Kolpackov
Ben Boeckel writes: > On Thu, Apr 21, 2022 at 06:05:52 +0200, Boris Kolpackov wrote: > > > I don't think it is. A header unit (unlike a named module) may export > > macros which could affect further dependencies. Consider: > > > > import "header-unit.

Re: [modules] Preprocessing requires compiled header unit modules

2022-04-25 Thread Boris Kolpackov
Iain Sandoe writes: > The standard has the concept of an “importable header” which is > implementation-defined. But it must contain all the C++ library headers: https://eel.is/c++draft/headers#4 > We could choose that only headers that are self-contained (i.e. unaffected > by external defines

Re: [modules] Preprocessing requires compiled header unit modules

2022-04-25 Thread Boris Kolpackov
Ben Boeckel writes: > If we need to know and have dependencies prepared before we can figure > out the dependencies for a TU, modules are unsolvable (without an active > build executor). If C++ implementations are really going to require > that, then [...] the following tools are all unsuitable f

Re: GCC 12.1 Release Candidate available from gcc.gnu.org

2022-05-02 Thread Boris Kolpackov
Jakub Jelinek writes: > The first release candidate for GCC 12.1 is available [...] There is an unfixed bogus warning that is a regression in 12 and that I think will have a pretty wide effect (any code that assigns/appends a 1-char string literal to std::string): https://gcc.gnu.org/bugzilla/s

Re: Sourceware mitigating and preventing the next xz-backdoor

2024-04-24 Thread Boris Kolpackov
Martin Uecker writes: > Do we really still need complex build systems such as autoconf? Are > there still so many different configurations with subtle differences > that every single feature needs to be tested individually by running > code at build time? We have taken the alternative approach i

[ANN] ODB C++ ORM 2.3.0 released

2013-10-30 Thread Boris Kolpackov
I am pleased to announce the release of ODB 2.3.0. ODB is an open source object-relational mapping (ORM) system for C++. It allows you to persist C++ objects to a relational database without having to deal with tables, columns, or SQL and without manually writing any of the mapping code. ODB is im

[ANN] C++Now 2014: 5 Days to Submissions Deadline

2013-12-03 Thread Boris Kolpackov
Hi, Only 5 days left before the submissions deadline for C++Now 2014! C++Now is a general C++ conference for C++ experts and enthusiasts. It is not specific to any library/framework or compiler vendor and has three tracks with presentations ranging from hands-on, practical tutorials to advanced C

[ANN] Registration for C++Now 2014 is Open

2014-01-07 Thread Boris Kolpackov
Hi, Registration is now open for the eighth annual C++Now conference (formerly BoostCon) which will be held in Aspen, Colorado, USA, May 12th to 17th, 2014. C++Now is a general C++ conference for C++ experts and enthusiasts. It is not specific to any library/framework or compiler vendor and has t

[ANN] Registration for CppCon 2014 is Open

2014-03-18 Thread Boris Kolpackov
CppCon, The C++ Conference Opening Keynote by Bjarne Stroustrup September 7–12, 2014 Bellevue, Washington, USA Registration is now open for CppCon 2014 to be held September 7–12, 2014 at the Meydenbauer Center in Bellevue, Washington, USA. This year the conference starts with the keynote by Bj

[ANN] CppCon 2014 Call for Submissions

2014-03-25 Thread Boris Kolpackov
Hi, CppCon is the annual, week-long face-to-face gathering for the entire C++ community. The conference is organized by the C++ community for the community and so we invite you to present. Have you learned something interesting about C++, maybe a new technique possible in C++11? Or perhaps you ha

[ANN] ODB C++ ORM 2.0.0 released

2012-05-02 Thread Boris Kolpackov
I am pleased to announce the release of ODB 2.0.0. ODB is an open source object-relational mapping (ORM) system for C++. It allows you to persist C++ objects to a relational database without having to deal with tables, columns, or SQL and without manually writing any of the mapping code. ODB is i

Registration for C++Now 2013 is now open

2012-12-11 Thread Boris Kolpackov
The seventh annual C++Now Conference (formerly BoostCon) will be held at the Aspen Center for Physics in Aspen, Colorado, May 12th to 17th, 2013. "We are thrilled to announce the second annual C++Now conference, the whole-language edition of BoostCon covering all the coolest topics in C++," said D

[ANN] C++Now 2013 submission deadline extended to January 5th

2012-12-18 Thread Boris Kolpackov
Just a quick note that the proposals deadline for the C++Now 2013 conference has been extended to January 5th: http://cppnow.org/2013-call-for-submissions/ C++Now is the largest general C++ conference, that is, it is not specific to any library/framework or compiler vendor. C++Now has three track

[ANN] ODB C++ ORM 2.2.0 released

2013-02-13 Thread Boris Kolpackov
Hi, I am pleased to announce the release of ODB 2.2.0. ODB is an open source object-relational mapping (ORM) system for C++. It allows you to persist C++ objects to a relational database without having to deal with tables, columns, or SQL and without manually writing any of the mapping code. ODB