[neon/forks/sip6/Neon/release] debian: Drop composite_classes.diff, included in the new release.

Dmitry Shachnev null at kde.org
Sun Feb 19 03:56:41 GMT 2023


Git commit 08479dcf533285c1eba340a11e90c5c9a65243b9 by Dmitry Shachnev.
Committed on 06/02/2023 at 13:19.
Pushed by carlosdem into branch 'Neon/release'.

Drop composite_classes.diff, included in the new release.

M  +1    -0    debian/changelog
D  +0    -471  debian/patches/composite_classes.diff
M  +0    -1    debian/patches/series

https://invent.kde.org/neon/forks/sip6/commit/08479dcf533285c1eba340a11e90c5c9a65243b9

diff --git a/debian/changelog b/debian/changelog
index e290c9f..194e65e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 sip6 (6.7.7+dfsg-1) UNRELEASED; urgency=medium
 
   * New upstream release.
+  * Drop composite_classes.diff, included in the new release.
 
  -- Dmitry Shachnev <mitya57 at debian.org>  Mon, 06 Feb 2023 17:17:11 +0400
 
diff --git a/debian/patches/composite_classes.diff b/debian/patches/composite_classes.diff
deleted file mode 100644
index f28f527..0000000
--- a/debian/patches/composite_classes.diff
+++ /dev/null
@@ -1,471 +0,0 @@
-From: Phil Thompson <phil at riverbankcomputing.com>
-Date: Tue, 31 Jan 2023 16:59:37 +0000
-Subject: Refactored the handling of composite classes so that they are
- populated properly.
-
-Origin: upstream, https://riverbankcomputing.com/hg/sip/rev/0afab92347b6
----
- code_generator/gencode.c                    | 22 ++-----
- code_generator/py2c.c                       | 10 +---
- code_generator/sip.h                        |  7 +--
- sipbuild/bindings.py                        |  4 +-
- sipbuild/generator/outputs/pyi.py           |  4 +-
- sipbuild/generator/parser/parser_manager.py | 90 +++++++++++++----------------
- sipbuild/generator/parser/rules.py          | 29 ++++------
- sipbuild/generator/specification.py         | 11 ++--
- 8 files changed, 67 insertions(+), 110 deletions(-)
-
-diff --git a/code_generator/gencode.c b/code_generator/gencode.c
-index 9fc917c..ad83fa1 100644
---- a/code_generator/gencode.c
-+++ b/code_generator/gencode.c
-@@ -1,7 +1,7 @@
- /*
-  * The code generator module for SIP.
-  *
-- * Copyright (c) 2022 Riverbank Computing Limited <info at riverbankcomputing.com>
-+ * Copyright (c) 2023 Riverbank Computing Limited <info at riverbankcomputing.com>
-  *
-  * This file is part of SIP.
-  *
-@@ -342,7 +342,7 @@ stringList *generateCode(sipSpec *pt, char *codeDir, const char *srcSuffix,
-     if (srcSuffix == NULL)
-         srcSuffix = (generating_c ? ".c" : ".cpp");
- 
--    if (isComposite(pt->module))
-+    if (pt->is_composite)
-     {
-         if (generateCompositeCpp(pt, codeDir, &generated, py_debug) < 0)
-             return NULL;
-@@ -1098,10 +1098,9 @@ static int generateCompositeCpp(sipSpec *pt, const char *codeDir,
-         );
- 
-     for (mld = pt->module->allimports; mld != NULL; mld = mld->next)
--        if (mld->module->container == pt->module)
--            prcode(fp,
-+        prcode(fp,
- "    sip_import_component_module(sipModuleDict, \"%s\");\n"
--                , mld->module->fullname->text);
-+            , mld->module->fullname->text);
- 
-     prcode(fp,
- "\n"
-@@ -1229,8 +1228,7 @@ static const char *generateCpp(sipSpec *pt, moduleDef *mod,
-             );
- 
-     /* Define the names. */
--    if (mod->container == NULL)
--        generateNameCache(pt, fp);
-+    generateNameCache(pt, fp);
- 
-     /* Generate the C++ code blocks. */
-     generateCppCodeBlock(mod->cppcode, fp);
-@@ -2047,15 +2045,7 @@ static const char *generateCpp(sipSpec *pt, moduleDef *mod,
-             , mname);
- 
-     /* Generate the Python module initialisation function. */
--
--    if (mod->container == pt->module)
--        prcode(fp,
--"\n"
--"PyObject *sip_init_%s()\n"
--"{\n"
--            , mname);
--    else
--        generateModInitStart(pt->module, generating_c, fp);
-+    generateModInitStart(pt->module, generating_c, fp);
- 
-     /* Generate the global functions. */
- 
-diff --git a/code_generator/py2c.c b/code_generator/py2c.c
-index 2e6b3f3..fc78fd8 100644
---- a/code_generator/py2c.c
-+++ b/code_generator/py2c.c
-@@ -2,7 +2,7 @@
-  * The transitional conversion from the output of the Python-based parser to
-  * that required by the rest of the C-based code generator.
-  *
-- * Copyright (c) 2022 Riverbank Computing Limited <info at riverbankcomputing.com>
-+ * Copyright (c) 2023 Riverbank Computing Limited <info at riverbankcomputing.com>
-  *
-  * This file is part of SIP.
-  *
-@@ -417,6 +417,7 @@ sipSpec *py2c(PyObject *spec, const char *encoding)
-     pt->exptypehintcode = codeblock_list_attr(spec, "exported_type_hint_code",
-             encoding);
-     pt->genc = bool_attr(spec, "c_bindings");
-+    pt->is_composite = bool_attr(spec, "is_composite");
-     pt->plugins = str_list_attr(spec, "plugins", encoding);
-     pt->nrvirthandlers = int_attr(spec, "nr_virtual_handlers");
-     pt->qobject_cd = class_attr(pt, spec, "pyqt_qobject", encoding);
-@@ -1654,12 +1655,6 @@ static moduleDef *module(sipSpec *pt, PyObject *obj, const char *encoding)
-     if (bool_attr(obj, "has_delayed_dtors"))
-         setHasDelayedDtors(value);
- 
--    if (bool_attr(obj, "is_composite"))
--    {
--        setIsComposite(value);
--        value->modflags &= ~MOD_SUPER_INIT_MASK;
--    }
--
-     if (bool_attr(obj, "use_arg_names"))
-         setUseArgNames(value);
- 
-@@ -1699,7 +1694,6 @@ static moduleDef *module(sipSpec *pt, PyObject *obj, const char *encoding)
-     value->next_key = int_attr(obj, "next_key");
-     value->license = license_attr(obj, "license", encoding);
-     value->proxies = class_list_attr(pt, obj, "proxies", encoding);
--    value->container = module_attr(pt, obj, "composite", encoding);
-     value->used = ifacefilelist_attr(pt, obj, "used", encoding);
-     value->imports = modulelist_attr(pt, obj, "imports", encoding);
-     value->allimports = modulelist_attr(pt, obj, "all_imports", encoding);
-diff --git a/code_generator/sip.h b/code_generator/sip.h
-index 23b3f49..cc427b0 100644
---- a/code_generator/sip.h
-+++ b/code_generator/sip.h
-@@ -1,7 +1,7 @@
- /*
-  * The main header file for SIP.
-  *
-- * Copyright (c) 2022 Riverbank Computing Limited <info at riverbankcomputing.com>
-+ * Copyright (c) 2023 Riverbank Computing Limited <info at riverbankcomputing.com>
-  *
-  * This file is part of SIP.
-  *
-@@ -72,7 +72,6 @@
- 
- #define MOD_HAS_DELAYED_DTORS   0x0001  /* It has a class with a delayed dtor. */
- #define MOD_IS_UNUSED           0x0002  /* This flag is unused. */
--#define MOD_IS_COMPOSITE        0x0004  /* It is a composite module. */
- #define MOD_IS_TRANSFORMED      0x0008  /* It's types have been transformed. */
- #define MOD_USE_ARG_NAMES       0x0010  /* Use real argument names. */
- #define MOD_USE_LIMITED_API     0x0020  /* Use the limited API. */
-@@ -85,8 +84,6 @@
- 
- #define hasDelayedDtors(m)  ((m)->modflags & MOD_HAS_DELAYED_DTORS)
- #define setHasDelayedDtors(m)   ((m)->modflags |= MOD_HAS_DELAYED_DTORS)
--#define isComposite(m)      ((m)->modflags & MOD_IS_COMPOSITE)
--#define setIsComposite(m)   ((m)->modflags |= MOD_IS_COMPOSITE)
- #define setIsTransformed(m) ((m)->modflags |= MOD_IS_TRANSFORMED)
- #define isTransformed(m)    ((m)->modflags & MOD_IS_TRANSFORMED)
- #define setUseArgNames(m)   ((m)->modflags |= MOD_USE_ARG_NAMES)
-@@ -954,7 +951,6 @@ typedef struct _moduleDef {
-     int next_key;                       /* The next key to allocate. */
-     licenseDef *license;                /* The software license. */
-     struct _classDef *proxies;          /* The list of proxy classes. */
--    struct _moduleDef *container;       /* The container module, if any. */
-     struct _ifaceFileList *used;        /* Interface files used. */
-     struct _moduleListDef *allimports;  /* The list of all imports. */
-     struct _moduleListDef *imports;     /* The list of direct imports. */
-@@ -1274,6 +1270,7 @@ typedef struct {
-     codeBlockList *exptypehintcode;     /* Exported type hint code. */
-     classDef *qobject_cd;               /* QObject class, NULL if none. */
-     int genc;                           /* Set if we are generating C code. */
-+    int is_composite;                   /* Set if the main module is composite. */
-     struct _stringList *plugins;        /* The list of plugins. */
-     struct _extractDef *extracts;       /* The list of extracts. */
- } sipSpec;
-diff --git a/sipbuild/bindings.py b/sipbuild/bindings.py
-index a2346c7..29758bd 100644
---- a/sipbuild/bindings.py
-+++ b/sipbuild/bindings.py
-@@ -1,4 +1,4 @@
--# Copyright (c) 2022, Riverbank Computing Limited
-+# Copyright (c) 2023, Riverbank Computing Limited
- # All rights reserved.
- #
- # This copy of SIP is licensed for use under the terms of the SIP License
-@@ -175,7 +175,7 @@ class Bindings(Configurable):
- 
-         module = spec.module
- 
--        uses_limited_api = module.use_limited_api or module.is_composite
-+        uses_limited_api = module.use_limited_api or spec.is_composite
- 
-         # The details of things that will have been generated.  Note that we
-         # don't include anything for .api files or generic extracts as the
-diff --git a/sipbuild/generator/outputs/pyi.py b/sipbuild/generator/outputs/pyi.py
-index b554366..0bf2972 100644
---- a/sipbuild/generator/outputs/pyi.py
-+++ b/sipbuild/generator/outputs/pyi.py
-@@ -1,4 +1,4 @@
--# Copyright (c) 2022, Riverbank Computing Limited
-+# Copyright (c) 2023, Riverbank Computing Limited
- # All rights reserved.
- #
- # This copy of SIP is licensed for use under the terms of the SIP License
-@@ -49,7 +49,7 @@ f'''# The PEP 484 type hints stub file for the {module.py_name} module.
- 
- ''')
- 
--        if module.is_composite:
-+        if spec.is_composite:
-             _composite_module(pf, spec, module)
-         else:
-             _module(pf, spec, module)
-diff --git a/sipbuild/generator/parser/parser_manager.py b/sipbuild/generator/parser/parser_manager.py
-index 6608f75..b09504d 100644
---- a/sipbuild/generator/parser/parser_manager.py
-+++ b/sipbuild/generator/parser/parser_manager.py
-@@ -1,4 +1,4 @@
--# Copyright (c) 2022, Riverbank Computing Limited
-+# Copyright (c) 2023, Riverbank Computing Limited
- # All rights reserved.
- #
- # This copy of SIP is licensed for use under the terms of the SIP License
-@@ -87,7 +87,6 @@ class ParserManager:
-         self.c_bindings = None
-         self.code_block = None
-         self.module_state = None
--        self.module_states = []
-         self.paren_depth = 0
-         self.parsing_template = False
-         self.parsing_virtual = False
-@@ -1205,14 +1204,9 @@ class ParserManager:
-         sip_file, raw_sip_file, input, lineno, lexpos, module_state = self._file_stack.pop()
- 
-         if module_state is None:
-+            self._import_module(self._sip_file)
-             module_state = self.module_state
- 
--            # The current file was %Included so create a new Module and
--            # ModuleState as if it had been %Imported.
--            module = Module()
--            self.modules.append(module)
--            self.module_state = ModuleState(module, self._sip_file, self)
--
-         self._file_stack.append(
-                 (sip_file, raw_sip_file, input, lineno, lexpos, module_state))
- 
-@@ -1459,9 +1453,7 @@ class ParserManager:
-         code will be generated for.
-         """
- 
--        module = self.module_state.module
--
--        return module is self.spec.module or module.composite is not None
-+        return self.module_state.module is self.spec.module
- 
-     def instantiate_class_template(self, p, symbol, fq_cpp_name, template,
-             py_name, no_type_name, docstring):
-@@ -1503,7 +1495,7 @@ class ParserManager:
-         raw_sip_file = sip_file
-         sip_file = os.path.abspath(sip_file)
- 
--        self.module_state = ModuleState(self.spec.module, sip_file, self)
-+        self.module_state = ModuleState(self.spec.module, sip_file)
- 
-         try:
-             self._parser.parse(self._read(sip_file, raw_sip_file),
-@@ -1637,47 +1629,17 @@ class ParserManager:
-                         "'{0}' is being read recursively".format(sip_file))
-                 return
- 
--        if new_module:
--            importing_from = self.module_state.module
--
--            # Create a new module if it has not already been defined.
--            for module_state in self.module_states:
--                if module_state.sip_file == sip_file:
--                    module = module_state.module
--                    break
--            else:
--                module = Module()
--                self.modules.append(module)
--
--                module.default_exception = self.module_state.module.default_exception
--                old_module_state = self.module_state
--                self.module_state = ModuleState(module, sip_file, self)
--
--                # Get the configuration of the new module.
--                mod_tags, mod_disabled = get_bindings_configuration(
--                        self.spec.abi_version[0], sip_file, self._include_dirs)
--
--                for tag in mod_tags:
--                    if tag not in self.tags:
--                        self.tags.append(tag)
--
--                for feature in mod_disabled:
--                    if feature not in self._disabled_features:
--                        self._disabled_features.append(feature)
-+        # Ignore the file if we have already read it.
-+        if sip_file in self._all_sip_files:
-+            return
- 
--            # Add the new import unless it has already been imported.
--            if module not in importing_from.imports:
--                importing_from.imports.insert(0, module)
-+        if new_module:
-+            old_module_state = self.module_state
-+            self._import_module(sip_file)
-         else:
-             # This means that the file was %Included rather than %Imported.
-             old_module_state = None
- 
--        # Ignore the file if we have already read it. This replicates the
--        # behaviour of the old parser but shouldn't be required for a well
--        # specified project.
--        if sip_file in self._all_sip_files:
--            return
--
-         # Save the state of the current .sip file.
-         self._file_stack.append(
-                 (self._sip_file, self.raw_sip_file, self._input,
-@@ -2116,6 +2078,34 @@ class ParserManager:
-         # call_super_init defaults to False if it wasn't specified.
-         module.call_super_init = bool(module_state.call_super_init)
- 
-+    def _import_module(self, sip_file):
-+        """ Create a new Module object and corresponding ModuleState object for
-+        a .sip file and make it current.
-+        """
-+
-+        importing_from = self.module_state.module
-+
-+        module = Module()
-+        self.modules.append(module)
-+
-+        module.default_exception = self.module_state.module.default_exception
-+        self.module_state = ModuleState(module, sip_file)
-+
-+        # Get the configuration of the new module.
-+        mod_tags, mod_disabled = get_bindings_configuration(
-+                self.spec.abi_version[0], sip_file, self._include_dirs)
-+
-+        for tag in mod_tags:
-+            if tag not in self.tags:
-+                self.tags.append(tag)
-+
-+        for feature in mod_disabled:
-+            if feature not in self._disabled_features:
-+                self._disabled_features.append(feature)
-+
-+        # Add the new import.
-+        importing_from.imports.append(module)
-+
-     def _read(self, sip_file, raw_sip_file):
-         """ Return the contents of the current .sip file. """
- 
-@@ -2149,7 +2139,7 @@ class ParserManager:
- class ModuleState:
-     """ Encapsulate the parser-related state for a module. """
- 
--    def __init__(self, module, sip_file, pm):
-+    def __init__(self, module, sip_file):
-         """ Initialise the state. """
- 
-         self.module = module
-@@ -2162,8 +2152,6 @@ class ModuleState:
-         self.kw_args = KwArgs.NONE
-         self.nr_timelines = 0
- 
--        pm.module_states.append(self)
--
- 
- class ScopeState:
-     """ Encapsulate the parser-related state for a scope. """
-diff --git a/sipbuild/generator/parser/rules.py b/sipbuild/generator/parser/rules.py
-index 0c3ad03..9c804e0 100644
---- a/sipbuild/generator/parser/rules.py
-+++ b/sipbuild/generator/parser/rules.py
-@@ -1,4 +1,4 @@
--# Copyright (c) 2022, Riverbank Computing Limited
-+# Copyright (c) 2023, Riverbank Computing Limited
- # All rights reserved.
- #
- # This copy of SIP is licensed for use under the terms of the SIP License
-@@ -201,6 +201,12 @@ def p_composite_module(p):
-     if pm.skipping:
-         return
- 
-+    # A composite module must be the first one in the specification.
-+    if not pm.in_main_module:
-+        pm.parser_error(p, 1, "a %CompositeModule cannot be %Imported")
-+
-+    pm.spec.is_composite = True
-+
-     if len(p) == 4:
-         name = p[2]
-         body = p[3]
-@@ -210,15 +216,7 @@ def p_composite_module(p):
- 
-     module = pm.module_state.module
- 
--    if module is not pm.modules[0]:
--        pm.parser_error(p, 1, "a %CompositeModule cannot be %Imported")
--
--    if module.fq_py_name is not None:
--        pm.parser_error(p, 1,
--                "%CompositeModule must appear before any %Module directive")
--
-     module.fq_py_name = cached_name(pm.spec, str(name))
--    module.is_composite = True
- 
-     for directive in body:
-         if isinstance(directive, Docstring):
-@@ -1035,22 +1033,15 @@ def p_module(p):
-     if pm.skipping:
-         return
- 
--    module_state = pm.module_state
--    module = module_state.module
--
-     # See if this %Module is part of a %CompositeModule.
--    if module.is_composite or module.composite is not None:
-+    if pm.spec.is_composite:
-         # Historically we %Include modules although conceptually we actually
-         # %Import them.  Ensure that the scopes etc. are correct in either
-         # case.
-         pm.ensure_import()
- 
--        # The module state may have changed.
--        module_state = pm.module_state
--
--        module_state.module.composite = module if module.is_composite else module.composite
--
--        module = module_state.module
-+    module_state = pm.module_state
-+    module = module_state.module
- 
-     if module.fq_py_name is not None:
-         pm.parser_error(p, 1, "%Module has already been specified")
-diff --git a/sipbuild/generator/specification.py b/sipbuild/generator/specification.py
-index eecaaab..05a2dfb 100644
---- a/sipbuild/generator/specification.py
-+++ b/sipbuild/generator/specification.py
-@@ -1,4 +1,4 @@
--# Copyright (c) 2022, Riverbank Computing Limited
-+# Copyright (c) 2023, Riverbank Computing Limited
- # All rights reserved.
- #
- # This copy of SIP is licensed for use under the terms of the SIP License
-@@ -979,9 +979,6 @@ class Module:
-     # Set if wrapped ctors should support cooperative multi-inheritance.
-     call_super_init: bool = False
- 
--    # The containing composite module.
--    composite: Optional['Module'] = None
--
-     # The text specified by any %Copying directives.
-     copying: List[CodeBlock] = field(default_factory=list)
- 
-@@ -1023,9 +1020,6 @@ class Module:
-     # The code specified by any %InitialisationCode directives.
-     initialisation_code: List[CodeBlock] = field(default_factory=list)
- 
--    # Set if the module is a composite module.
--    is_composite: bool = False
--
-     # The software license.
-     license: Optional[License] = None
- 
-@@ -1316,6 +1310,9 @@ class Specification:
-     # The interface files.
-     iface_files: List[IfaceFile] = field(default_factory=list)
- 
-+    # Set if the specification is for a composite module.
-+    is_composite: bool = False
-+
-     # The mapped type templates.
-     mapped_type_templates: List[MappedTypeTemplate] = field(default_factory=list)
- 
diff --git a/debian/patches/series b/debian/patches/series
index 1526b57..2792c84 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1 @@
 intersphinx_local.diff
-composite_classes.diff



More information about the Neon-commits mailing list