Re: Rationalizing code-sharing among src/bin/ directories
От | Petr Jelinek |
---|---|
Тема | Re: Rationalizing code-sharing among src/bin/ directories |
Дата | |
Msg-id | 56F2D2AC.2040303@2ndquadrant.com обсуждение исходный текст |
Ответ на | Rationalizing code-sharing among src/bin/ directories (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
On 23/03/16 17:55, Tom Lane wrote: > I'm not terribly happy with the hack I used to get pgbench to be able > to borrow psql's psqlscan.l lexer. It's a mess for the MSVC build > scripts, and I have seen it causing two concurrent builds of psqlscan.o > in parallel builds, which is likely to cause a build failure some of > the time. Another unresolved issue is that we can't apply FLEX_NO_BACKUP > testing to both of psql's lexers, because that causes each of those > make steps to want to write lex.backup in the current directory. > > I have a modest proposal for improving this: let's move all the code > that's currently shared by two or more src/bin/ subdirectories into a > new directory, say src/feutils, and build it into a ".a" library in > the same way that src/common/ is handled. This would remove the > following klugy cross-directory links: > > src/bin/pgbench/psqlscan.o -> ../../../src/bin/psql/psqlscan.o > src/bin/psql/dumputils.c -> ../../../src/bin/pg_dump/dumputils.c > src/bin/psql/keywords.c -> ../../../src/bin/pg_dump/keywords.c > src/bin/scripts/dumputils.c -> ../../../src/bin/pg_dump/dumputils.c > src/bin/scripts/keywords.c -> ../../../src/bin/pg_dump/keywords.c > src/bin/scripts/mbprint.c -> ../../../src/bin/psql/mbprint.c > src/bin/scripts/print.c -> ../../../src/bin/psql/print.c > > Note: the reason for a new subdirectory, rather than putting this > stuff into src/common/, is that src/common/ is meant for code that's > shared between frontend and backend, which this stuff is not. Also, > many of these files depend on libpq which seems like an inappropriate > dependency for src/common. > > Having said that, I also notice these dependencies: > > src/bin/pg_dump/kwlookup.c -> ../../../src/backend/parser/kwlookup.c > src/bin/psql/kwlookup.c -> ../../../src/backend/parser/kwlookup.c > src/bin/scripts/kwlookup.c -> ../../../src/backend/parser/kwlookup.c > src/interfaces/ecpg/preproc/kwlookup.c -> ../../../../src/backend/parser/kwlookup.c > src/bin/initdb/encnames.c -> ../../../src/backend/utils/mb/encnames.c > src/interfaces/libpq/encnames.c -> ../../../src/backend/utils/mb/encnames.c > > which seem like they'd be better handled by moving those files into > src/common/. > > Thoughts? > Yes please! -- Petr Jelinek http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-hackers по дате отправления: