1
0
mirror of https://https.git.savannah.gnu.org/git/gnulib.git synced 2026-08-27 12:06:59 +00:00

35 Commits

Author SHA1 Message Date
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 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 0c6eab271e generator: swap mkedits yield and delete actions 2018-07-04 10:54:18 +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 9ff91f9b80 generator: make licenses hashable 2018-07-02 01:02:02 +03:00
Dmitry Selyutin 46a87df04e generator: fix gnulib-cache.m4 generation 2018-06-29 00:23:37 +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 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 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 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 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 424f28f6aa generator: command-line invocation generator 2017-12-03 18:11:18 +03:00
Dmitry Selyutin 3a3b4e7f43 generator: __enter__ and __exit__ methods 2017-10-22 23:55:25 +03:00
Dmitry Selyutin 8464a64618 style: prefer using a single underscore 2017-10-22 23:13:50 +03:00
Dmitry Selyutin 634a7f71c2 generator: simplify InitMacroHeader iterator 2017-10-22 22:43:46 +03:00
Dmitry Selyutin c27339b33c pygnulib: deprecate legacy formatting 2017-09-29 21:12:41 +03:00
Dmitry Selyutin c2a0b0d14d update documentation strings 2017-09-15 23:11:14 +03:00
Dmitry Selyutin d851108387 miscellaneous bug fixes and improvements 2017-09-13 00:26:34 +03:00
Dmitry Selyutin 3bb495a9d4 private import even for standard modules 2017-09-09 23:01:51 +03:00
Dmitry Selyutin 8c9c625cad type_assert helper (unify type error handling) 2017-09-09 22:54:55 +03:00
Dmitry Selyutin 5bf19be1f8 private import; yet another naming simplification 2017-09-09 21:58:23 +03:00
Dmitry Selyutin 59f22bd113 module: alternate naming for some properties 2017-09-09 20:22:10 +03:00
Dmitry Selyutin 835b8bc969 [backport] gnulib-tool: fix incompatibility with autopoint 0.18.2
commit 8e858e6d77
Author: Paul Eggert <eggert@cs.ucla.edu>
Date:   Sat Jan 5 08:03:10 2013 -0800

    gnulib-tool: fix incompatibility with autopoint 0.18.2

    * gnulib-tool: Don't indent AM_GNU_GETTEXT_VERSION line.
    Problem reported by Tom G. Christensen in
    <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00053.html>.
2017-09-09 19:53:05 +03:00
Dmitry Selyutin 38b9fa0be9 generator: do not export private class members into inherited classes 2017-09-09 19:42:55 +03:00
Dmitry Selyutin f4274dd934 [python] python gnulib API development branch 2017-09-08 23:35:13 +03:00