1
0
mirror of https://https.git.savannah.gnu.org/git/gnulib.git synced 2026-08-22 09:06:25 +00:00

178 Commits

Author SHA1 Message Date
Dmitry Selyutin cf235b0d1f module: fix test_module calculations 2018-07-07 17:58:43 +03:00
Dmitry Selyutin 8462af965d generator: fix gl_VC_FILES in gnulib_cache 2018-07-05 22:32:35 +03:00
Dmitry Selyutin d66bbe8d5d more fixes regarding --lgpl option 2018-07-05 22:28:08 +03:00
Dmitry Selyutin c6c7e33ac1 generator: fix subdirs for gnulib_comp 2018-07-05 22:27:09 +03:00
Dmitry Selyutin b42ec0c334 module: fix autoconf version check 2018-07-05 22:27:09 +03:00
Dmitry Selyutin 679e16886f vfs: multiple overrides in lookup routine 2018-07-05 22:27:09 +03:00
Dmitry Selyutin 9f54fabb7a generator: fix gl_LGPL macro if --lgpl given 2018-07-05 00:33:22 +03:00
Dmitry Selyutin 4e683c45b3 generator: fix gnulib-cache.m4 and command line 2018-07-04 23:51:06 +03:00
Dmitry Selyutin 4420b71bbf misc: optional configuration paths 2018-07-04 23:50:33 +03:00
Dmitry Selyutin 0c6eab271e generator: swap mkedits yield and delete actions 2018-07-04 10:54:18 +03:00
Dmitry Selyutin a0dc3a16e8 misc: remove unused code 2018-07-03 23:29:58 +03:00
Dmitry Selyutin 1a8c911ab4 parser: fix --avoid option handling 2018-07-03 22:59:46 +03:00
Dmitry Selyutin aedc7d8aef module: custom hook for licenses field 2018-07-03 22:59:04 +03:00
Dmitry Selyutin 21923599ab generator: update snippet variable 2018-07-03 21:37:25 +03:00
Dmitry Selyutin 69437cd888 generator: fix missing path separator 2018-07-02 20:19:42 +03:00
Dmitry Selyutin 0b037a4eb4 module: fix initial values for properties 2018-07-02 01:03:15 +03:00
Dmitry Selyutin 56d8b43e2a parser: support empty --lgpl argument 2018-07-02 01:02:30 +03:00
Dmitry Selyutin 9ff91f9b80 generator: make licenses hashable 2018-07-02 01:02:02 +03:00
Dmitry Selyutin 99b64e290d vfs: normalize file path after concatenation 2018-06-30 16:30:26 +03:00
Dmitry Selyutin 97a2a07e5f vfs: simplify some code parts 2018-06-30 16:30:02 +03:00
Dmitry Selyutin c0e63bb2f2 vfs: deprecate unused "backup" parameter 2018-06-29 01:44:29 +03:00
Dmitry Selyutin 11f3d74c15 parser: enable vc_files by default 2018-06-29 00:24:26 +03:00
Dmitry Selyutin 46a87df04e generator: fix gnulib-cache.m4 generation 2018-06-29 00:23:37 +03:00
Dmitry Selyutin 510c5fe20d modules: swap dependencies and demanders; cleanup 2018-06-28 01:03:59 +03:00
Dmitry Selyutin 28a06d2ff9 remove debugging leftovers 2018-06-28 00:55:04 +03:00
Dmitry Selyutin fdd742b223 minor code cleanup 2018-02-10 19:01:32 +03:00
Dmitry Selyutin ecea1586e6 simplify properties; improve performance 2018-02-04 13:13:13 +03:00
Dmitry Selyutin cee75f5910 refactored generators; bugfix; tests Makefile.am 2018-01-29 19:08:46 +03:00
Dmitry Selyutin ab12fb43da parser: simplify mode parsing; fix --help error 2018-01-21 20:43:31 +03:00
Dmitry Selyutin c957e31386 parser: do not override --help option 2018-01-17 23:51:24 +03:00
Dmitry Selyutin 2c677cf153 module: override applicability and test properties 2018-01-17 21:37:36 +03:00
Dmitry Selyutin 9b9dfc11f2 generator: library Makefile generator fixes 2018-01-17 21:31:03 +03:00
Dmitry Selyutin 9976a64d11 config: autoconf options; version match; cleanup 2018-01-17 21:28:21 +03:00
Dmitry Selyutin 5b8fc9cba4 read-only modules; module cache; various fixes
Since gnulib-tool does not modify modules, it is OK to initialize each
module only once. Moreover, since most of the time is spent upon
executing transitive closures and each transitive closure stores all
modules into different lists, it is also a good idea to calculate the
hash only once for read-only modules. These simple additions make
gnulib-tool much faster than before, since each module is initialized
only once-per-run and has a constant hash value.

For example, an invocation of pygnulib.py inside wget2 takes about 0.5
seconds until it completes gnulib-comp.m4 generation; previously it used
to take up to 8 seconds. Needless to say that performing the same task
is much slower when using the good old gnulib-tool: in my experiments
it takes about a minute to complete gnulib-comp.m4 generation.

Some of the TransitiveClosure methods considered useful enough to be
also present as a part of Database class. The refactoring also revealed
that conditional modules computation was implemented incorrectly; this
code was fixed. Moreover, this part of functionality was moved into the
__init__ section, which also saves several milliseconds since it is not
necessary to check whether conditional modules table exists upon each
conditional() invocation.
2018-01-13 18:42:02 +03:00
Dmitry Selyutin fed873464b module: a faster hash computation 2018-01-12 23:09:16 +03:00
Dmitry Selyutin fa9e720c8a module: fix transitive closure algorithm 2018-01-12 23:05:54 +03:00
Dmitry Selyutin 36cb8f7650 module: generic hash and comparison for dummy 2018-01-11 22:21:42 +03:00
Dmitry Selyutin 962ee91a49 dummy singleton; update module hash and properties 2018-01-11 22:17:31 +03:00
Dmitry Selyutin 23f7be63fd generic cleanup; bug fixes; gnulib-comp generator
In order to implement correct gnulib-comp.m4 generation, the whole
conditional dependencies calculation algorithm had to be rewritten.
This patch fixes transitive closure algorithm so that it handles all
conditions correctly. Most of the transitive closure functionality was
separated into a standalone TransitiveClosure class to provide a fast
access to transitive closure results (thus incorporating almost all
functionality of the pygnulib.module.Database class).

The transitive closure is usually performed twice: the base one checks
dependencies for the base set of modules, while the full one also takes
the corresponding tests into account. A standalone Database class was
created to perform both closures in one shot and provide an easy access
to all required module and file lists. This allowed to incorporate some
code from the main script: dummy module handling, libtests.a presense,
module and file lists processing.

Yet another small change is that there is a special DummyModule object,
representing the well-known gnulib dummy module. It was created since
the original gnulib dummy module is unlikely to change quite often, so
it acts like special placeholder value.

Finally the naming convention was changed to longer names again.
2018-01-07 23:55:40 +03:00
Dmitry Selyutin aaf1afdcec parser: fix non-import options 2017-12-26 23:32:00 +03:00
Dmitry Selyutin 1d5e027c34 module: database refactoring; consistent hashes 2017-12-26 23:30:51 +03:00
Dmitry Selyutin 34b85028c8 module: module database implementation 2017-12-21 00:57:56 +03:00
Dmitry Selyutin 8500c05aec generator: change base class name 2017-12-20 20:07:49 +03:00
Dmitry Selyutin ff3a5a6407 miscellaneousfixes; po files and gnulib-cache generation 2017-12-17 23:14:19 +03:00
Dmitry Selyutin fc6154af7f library Makefile generator 2017-12-12 01:02:27 +03:00
Dmitry Selyutin 3a4c6e77de vfs: eliminate weird pylint warning 2017-12-12 00:58:08 +03:00
Dmitry Selyutin c10fbab8aa module: gnumake support; code cleanup 2017-12-12 00:58:08 +03:00
Dmitry Selyutin 379ea7054e module: nested automake conditionals workaround 2017-12-04 19:58:34 +03:00
Dmitry Selyutin b729e9a48a module: unconditional automake snippet 2017-12-04 19:46:20 +03:00
Dmitry Selyutin 72bb2d09b9 config: fix po_domain option 2017-12-03 18:53:15 +03:00