diff mbox series

[74/76] tracing: remove transform.py

Message ID 20230225091427.1817156-75-richard.henderson@linaro.org
State New
Headers show
Series tcg: Drop tcg_temp_free from translators | expand

Commit Message

Richard Henderson Feb. 25, 2023, 9:14 a.m. UTC
This file got left behind when the tcg stuff was
removed from tracetool.

Fixes: 126d4123c50a ("tracing: excise the tcg related from tracetool")
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 meson.build                    |   1 -
 scripts/tracetool/transform.py | 168 ---------------------------------
 2 files changed, 169 deletions(-)
 delete mode 100644 scripts/tracetool/transform.py

Comments

Daniel Henrique Barboza Feb. 25, 2023, 10:22 a.m. UTC | #1
Richard,

Not sure if I forgot or missed something but this patch breaks my build as follows:

$  make -j
   GIT     ui/keycodemapdb tests/fp/berkeley-testfloat-3 tests/fp/berkeley-softfloat-3 dtc
[1/885] Generating trace/trace-hw_hyperv.c with a custom command
FAILED: trace/trace-hw_hyperv.c
/usr/bin/python3 ../scripts/tracetool.py --backend=log --group=hw_hyperv --format=c /home/danielhb/work/qemu/hw/hyperv/trace-events trace/trace-hw_hyperv.c
Traceback (most recent call last):
   File "/home/danielhb/work/qemu/build/../scripts/tracetool.py", line 19, in <module>
     from tracetool import error_write, out, out_open
   File "/home/danielhb/work/qemu/scripts/tracetool/__init__.py", line 21, in <module>
     import tracetool.transform
ModuleNotFoundError: No module named 'tracetool.transform'


It seems that tracetool.py is still referring transform. This fixes the build
for me:

$ git diff
diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
index 5393c7fc5c..c361815bc1 100644
--- a/scripts/tracetool/__init__.py
+++ b/scripts/tracetool/__init__.py
@@ -18,7 +18,6 @@
  
  import tracetool.format
  import tracetool.backend
-import tracetool.transform
  
  
  def error_write(*lines):


For reference I grabbed and built the whole series from patchew:

https://patchew.org/QEMU/20230225091427.1817156-1-richard.henderson@linaro.org/



Thanks,


Daniel


On 2/25/23 06:14, Richard Henderson wrote:
> This file got left behind when the tcg stuff was
> removed from tracetool.
> 
> Fixes: 126d4123c50a ("tracing: excise the tcg related from tracetool")
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>   meson.build                    |   1 -
>   scripts/tracetool/transform.py | 168 ---------------------------------
>   2 files changed, 169 deletions(-)
>   delete mode 100644 scripts/tracetool/transform.py
> 
> diff --git a/meson.build b/meson.build
> index 6cb2b1a42f..275399b8c2 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -2861,7 +2861,6 @@ tracetool_depends = files(
>     'scripts/tracetool/format/log_stap.py',
>     'scripts/tracetool/format/stap.py',
>     'scripts/tracetool/__init__.py',
> -  'scripts/tracetool/transform.py',
>     'scripts/tracetool/vcpu.py'
>   )
>   
> diff --git a/scripts/tracetool/transform.py b/scripts/tracetool/transform.py
> deleted file mode 100644
> index ea8b27799d..0000000000
> --- a/scripts/tracetool/transform.py
> +++ /dev/null
> @@ -1,168 +0,0 @@
> -# -*- coding: utf-8 -*-
> -
> -"""
> -Type-transformation rules.
> -"""
> -
> -__author__     = "Lluís Vilanova <vilanova@ac.upc.edu>"
> -__copyright__  = "Copyright 2012-2016, Lluís Vilanova <vilanova@ac.upc.edu>"
> -__license__    = "GPL version 2 or (at your option) any later version"
> -
> -__maintainer__ = "Stefan Hajnoczi"
> -__email__      = "stefanha@redhat.com"
> -
> -
> -def _transform_type(type_, trans):
> -    if isinstance(trans, str):
> -        return trans
> -    elif isinstance(trans, dict):
> -        if type_ in trans:
> -            return _transform_type(type_, trans[type_])
> -        elif None in trans:
> -            return _transform_type(type_, trans[None])
> -        else:
> -            return type_
> -    elif callable(trans):
> -        return trans(type_)
> -    else:
> -        raise ValueError("Invalid type transformation rule: %s" % trans)
> -
> -
> -def transform_type(type_, *trans):
> -    """Return a new type transformed according to the given rules.
> -
> -    Applies each of the transformation rules in trans in order.
> -
> -    If an element of trans is a string, return it.
> -
> -    If an element of trans is a function, call it with type_ as its only
> -    argument.
> -
> -    If an element of trans is a dict, search type_ in its keys. If type_ is
> -    a key, use the value as a transformation rule for type_. Otherwise, if
> -    None is a key use the value as a transformation rule for type_.
> -
> -    Otherwise, return type_.
> -
> -    Parameters
> -    ----------
> -    type_ : str
> -        Type to transform.
> -    trans : list of function or dict
> -        Type transformation rules.
> -    """
> -    if len(trans) == 0:
> -        raise ValueError
> -    res = type_
> -    for t in trans:
> -        res = _transform_type(res, t)
> -    return res
> -
> -
> -##################################################
> -# tcg -> host
> -
> -def _tcg_2_host(type_):
> -    if type_ == "TCGv":
> -        # force a fixed-size type (target-independent)
> -        return "uint64_t"
> -    else:
> -        return type_
> -
> -TCG_2_HOST = {
> -    "TCGv_i32": "uint32_t",
> -    "TCGv_i64": "uint64_t",
> -    "TCGv_ptr": "void *",
> -    None: _tcg_2_host,
> -    }
> -
> -
> -##################################################
> -# host -> host compatible with tcg sizes
> -
> -HOST_2_TCG_COMPAT = {
> -    "uint8_t": "uint32_t",
> -    "uint16_t": "uint32_t",
> -    }
> -
> -
> -##################################################
> -# host/tcg -> tcg
> -
> -def _host_2_tcg(type_):
> -    if type_.startswith("TCGv"):
> -        return type_
> -    raise ValueError("Don't know how to translate '%s' into a TCG type\n" % type_)
> -
> -HOST_2_TCG = {
> -    "uint32_t": "TCGv_i32",
> -    "uint64_t": "TCGv_i64",
> -    "void *"  : "TCGv_ptr",
> -    "CPUArchState *": "TCGv_env",
> -    None: _host_2_tcg,
> -    }
> -
> -
> -##################################################
> -# tcg -> tcg helper definition
> -
> -def _tcg_2_helper_def(type_):
> -    if type_ == "TCGv":
> -        return "target_ulong"
> -    else:
> -        return type_
> -
> -TCG_2_TCG_HELPER_DEF = {
> -    "TCGv_i32": "uint32_t",
> -    "TCGv_i64": "uint64_t",
> -    "TCGv_ptr": "void *",
> -    None: _tcg_2_helper_def,
> -    }
> -
> -
> -##################################################
> -# tcg -> tcg helper declaration
> -
> -def _tcg_2_tcg_helper_decl_error(type_):
> -    raise ValueError("Don't know how to translate type '%s' into a TCG helper declaration type\n" % type_)
> -
> -TCG_2_TCG_HELPER_DECL = {
> -    "TCGv"    : "tl",
> -    "TCGv_ptr": "ptr",
> -    "TCGv_i32": "i32",
> -    "TCGv_i64": "i64",
> -    "TCGv_env": "env",
> -    None: _tcg_2_tcg_helper_decl_error,
> -    }
> -
> -
> -##################################################
> -# host/tcg -> tcg temporal constant allocation
> -
> -def _host_2_tcg_tmp_new(type_):
> -    if type_.startswith("TCGv"):
> -        return "tcg_temp_new_nop"
> -    raise ValueError("Don't know how to translate type '%s' into a TCG temporal allocation" % type_)
> -
> -HOST_2_TCG_TMP_NEW = {
> -    "uint32_t": "tcg_const_i32",
> -    "uint64_t": "tcg_const_i64",
> -    "void *"  : "tcg_const_ptr",
> -    None: _host_2_tcg_tmp_new,
> -    }
> -
> -
> -##################################################
> -# host/tcg -> tcg temporal constant deallocation
> -
> -def _host_2_tcg_tmp_free(type_):
> -    if type_.startswith("TCGv"):
> -        return "tcg_temp_free_nop"
> -    raise ValueError("Don't know how to translate type '%s' into a TCG temporal deallocation" % type_)
> -
> -HOST_2_TCG_TMP_FREE = {
> -    "uint32_t": "tcg_temp_free_i32",
> -    "uint64_t": "tcg_temp_free_i64",
> -    "void *"  : "tcg_temp_free_ptr",
> -    None: _host_2_tcg_tmp_free,
> -    }
Daniel Henrique Barboza Feb. 25, 2023, 10:52 a.m. UTC | #2
On 2/25/23 07:22, Daniel Henrique Barboza wrote:
> Richard,
> 
> Not sure if I forgot or missed something but this patch breaks my build as follows:



Nevermind, just did it again to test the powerpc changes and it worked. I probably
goofed something the first time.



Daniel

> 
> $  make -j
>    GIT     ui/keycodemapdb tests/fp/berkeley-testfloat-3 tests/fp/berkeley-softfloat-3 dtc
> [1/885] Generating trace/trace-hw_hyperv.c with a custom command
> FAILED: trace/trace-hw_hyperv.c
> /usr/bin/python3 ../scripts/tracetool.py --backend=log --group=hw_hyperv --format=c /home/danielhb/work/qemu/hw/hyperv/trace-events trace/trace-hw_hyperv.c
> Traceback (most recent call last):
>    File "/home/danielhb/work/qemu/build/../scripts/tracetool.py", line 19, in <module>
>      from tracetool import error_write, out, out_open
>    File "/home/danielhb/work/qemu/scripts/tracetool/__init__.py", line 21, in <module>
>      import tracetool.transform
> ModuleNotFoundError: No module named 'tracetool.transform'
> 
> 
> It seems that tracetool.py is still referring transform. This fixes the build
> for me:
> 
> $ git diff
> diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
> index 5393c7fc5c..c361815bc1 100644
> --- a/scripts/tracetool/__init__.py
> +++ b/scripts/tracetool/__init__.py
> @@ -18,7 +18,6 @@
> 
>   import tracetool.format
>   import tracetool.backend
> -import tracetool.transform
> 
> 
>   def error_write(*lines):
> 
> 
> For reference I grabbed and built the whole series from patchew:
> 
> https://patchew.org/QEMU/20230225091427.1817156-1-richard.henderson@linaro.org/
> 
> 
> 
> Thanks,
> 
> 
> Daniel
> 
> 
> On 2/25/23 06:14, Richard Henderson wrote:
>> This file got left behind when the tcg stuff was
>> removed from tracetool.
>>
>> Fixes: 126d4123c50a ("tracing: excise the tcg related from tracetool")
>> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
>> ---
>>   meson.build                    |   1 -
>>   scripts/tracetool/transform.py | 168 ---------------------------------
>>   2 files changed, 169 deletions(-)
>>   delete mode 100644 scripts/tracetool/transform.py
>>
>> diff --git a/meson.build b/meson.build
>> index 6cb2b1a42f..275399b8c2 100644
>> --- a/meson.build
>> +++ b/meson.build
>> @@ -2861,7 +2861,6 @@ tracetool_depends = files(
>>     'scripts/tracetool/format/log_stap.py',
>>     'scripts/tracetool/format/stap.py',
>>     'scripts/tracetool/__init__.py',
>> -  'scripts/tracetool/transform.py',
>>     'scripts/tracetool/vcpu.py'
>>   )
>> diff --git a/scripts/tracetool/transform.py b/scripts/tracetool/transform.py
>> deleted file mode 100644
>> index ea8b27799d..0000000000
>> --- a/scripts/tracetool/transform.py
>> +++ /dev/null
>> @@ -1,168 +0,0 @@
>> -# -*- coding: utf-8 -*-
>> -
>> -"""
>> -Type-transformation rules.
>> -"""
>> -
>> -__author__     = "Lluís Vilanova <vilanova@ac.upc.edu>"
>> -__copyright__  = "Copyright 2012-2016, Lluís Vilanova <vilanova@ac.upc.edu>"
>> -__license__    = "GPL version 2 or (at your option) any later version"
>> -
>> -__maintainer__ = "Stefan Hajnoczi"
>> -__email__      = "stefanha@redhat.com"
>> -
>> -
>> -def _transform_type(type_, trans):
>> -    if isinstance(trans, str):
>> -        return trans
>> -    elif isinstance(trans, dict):
>> -        if type_ in trans:
>> -            return _transform_type(type_, trans[type_])
>> -        elif None in trans:
>> -            return _transform_type(type_, trans[None])
>> -        else:
>> -            return type_
>> -    elif callable(trans):
>> -        return trans(type_)
>> -    else:
>> -        raise ValueError("Invalid type transformation rule: %s" % trans)
>> -
>> -
>> -def transform_type(type_, *trans):
>> -    """Return a new type transformed according to the given rules.
>> -
>> -    Applies each of the transformation rules in trans in order.
>> -
>> -    If an element of trans is a string, return it.
>> -
>> -    If an element of trans is a function, call it with type_ as its only
>> -    argument.
>> -
>> -    If an element of trans is a dict, search type_ in its keys. If type_ is
>> -    a key, use the value as a transformation rule for type_. Otherwise, if
>> -    None is a key use the value as a transformation rule for type_.
>> -
>> -    Otherwise, return type_.
>> -
>> -    Parameters
>> -    ----------
>> -    type_ : str
>> -        Type to transform.
>> -    trans : list of function or dict
>> -        Type transformation rules.
>> -    """
>> -    if len(trans) == 0:
>> -        raise ValueError
>> -    res = type_
>> -    for t in trans:
>> -        res = _transform_type(res, t)
>> -    return res
>> -
>> -
>> -##################################################
>> -# tcg -> host
>> -
>> -def _tcg_2_host(type_):
>> -    if type_ == "TCGv":
>> -        # force a fixed-size type (target-independent)
>> -        return "uint64_t"
>> -    else:
>> -        return type_
>> -
>> -TCG_2_HOST = {
>> -    "TCGv_i32": "uint32_t",
>> -    "TCGv_i64": "uint64_t",
>> -    "TCGv_ptr": "void *",
>> -    None: _tcg_2_host,
>> -    }
>> -
>> -
>> -##################################################
>> -# host -> host compatible with tcg sizes
>> -
>> -HOST_2_TCG_COMPAT = {
>> -    "uint8_t": "uint32_t",
>> -    "uint16_t": "uint32_t",
>> -    }
>> -
>> -
>> -##################################################
>> -# host/tcg -> tcg
>> -
>> -def _host_2_tcg(type_):
>> -    if type_.startswith("TCGv"):
>> -        return type_
>> -    raise ValueError("Don't know how to translate '%s' into a TCG type\n" % type_)
>> -
>> -HOST_2_TCG = {
>> -    "uint32_t": "TCGv_i32",
>> -    "uint64_t": "TCGv_i64",
>> -    "void *"  : "TCGv_ptr",
>> -    "CPUArchState *": "TCGv_env",
>> -    None: _host_2_tcg,
>> -    }
>> -
>> -
>> -##################################################
>> -# tcg -> tcg helper definition
>> -
>> -def _tcg_2_helper_def(type_):
>> -    if type_ == "TCGv":
>> -        return "target_ulong"
>> -    else:
>> -        return type_
>> -
>> -TCG_2_TCG_HELPER_DEF = {
>> -    "TCGv_i32": "uint32_t",
>> -    "TCGv_i64": "uint64_t",
>> -    "TCGv_ptr": "void *",
>> -    None: _tcg_2_helper_def,
>> -    }
>> -
>> -
>> -##################################################
>> -# tcg -> tcg helper declaration
>> -
>> -def _tcg_2_tcg_helper_decl_error(type_):
>> -    raise ValueError("Don't know how to translate type '%s' into a TCG helper declaration type\n" % type_)
>> -
>> -TCG_2_TCG_HELPER_DECL = {
>> -    "TCGv"    : "tl",
>> -    "TCGv_ptr": "ptr",
>> -    "TCGv_i32": "i32",
>> -    "TCGv_i64": "i64",
>> -    "TCGv_env": "env",
>> -    None: _tcg_2_tcg_helper_decl_error,
>> -    }
>> -
>> -
>> -##################################################
>> -# host/tcg -> tcg temporal constant allocation
>> -
>> -def _host_2_tcg_tmp_new(type_):
>> -    if type_.startswith("TCGv"):
>> -        return "tcg_temp_new_nop"
>> -    raise ValueError("Don't know how to translate type '%s' into a TCG temporal allocation" % type_)
>> -
>> -HOST_2_TCG_TMP_NEW = {
>> -    "uint32_t": "tcg_const_i32",
>> -    "uint64_t": "tcg_const_i64",
>> -    "void *"  : "tcg_const_ptr",
>> -    None: _host_2_tcg_tmp_new,
>> -    }
>> -
>> -
>> -##################################################
>> -# host/tcg -> tcg temporal constant deallocation
>> -
>> -def _host_2_tcg_tmp_free(type_):
>> -    if type_.startswith("TCGv"):
>> -        return "tcg_temp_free_nop"
>> -    raise ValueError("Don't know how to translate type '%s' into a TCG temporal deallocation" % type_)
>> -
>> -HOST_2_TCG_TMP_FREE = {
>> -    "uint32_t": "tcg_temp_free_i32",
>> -    "uint64_t": "tcg_temp_free_i64",
>> -    "void *"  : "tcg_temp_free_ptr",
>> -    None: _host_2_tcg_tmp_free,
>> -    }
>
Daniel Henrique Barboza Feb. 25, 2023, 10:53 a.m. UTC | #3
On 2/25/23 06:14, Richard Henderson wrote:
> This file got left behind when the tcg stuff was
> removed from tracetool.
> 
> Fixes: 126d4123c50a ("tracing: excise the tcg related from tracetool")
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---

Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>

>   meson.build                    |   1 -
>   scripts/tracetool/transform.py | 168 ---------------------------------
>   2 files changed, 169 deletions(-)
>   delete mode 100644 scripts/tracetool/transform.py
> 
> diff --git a/meson.build b/meson.build
> index 6cb2b1a42f..275399b8c2 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -2861,7 +2861,6 @@ tracetool_depends = files(
>     'scripts/tracetool/format/log_stap.py',
>     'scripts/tracetool/format/stap.py',
>     'scripts/tracetool/__init__.py',
> -  'scripts/tracetool/transform.py',
>     'scripts/tracetool/vcpu.py'
>   )
>   
> diff --git a/scripts/tracetool/transform.py b/scripts/tracetool/transform.py
> deleted file mode 100644
> index ea8b27799d..0000000000
> --- a/scripts/tracetool/transform.py
> +++ /dev/null
> @@ -1,168 +0,0 @@
> -# -*- coding: utf-8 -*-
> -
> -"""
> -Type-transformation rules.
> -"""
> -
> -__author__     = "Lluís Vilanova <vilanova@ac.upc.edu>"
> -__copyright__  = "Copyright 2012-2016, Lluís Vilanova <vilanova@ac.upc.edu>"
> -__license__    = "GPL version 2 or (at your option) any later version"
> -
> -__maintainer__ = "Stefan Hajnoczi"
> -__email__      = "stefanha@redhat.com"
> -
> -
> -def _transform_type(type_, trans):
> -    if isinstance(trans, str):
> -        return trans
> -    elif isinstance(trans, dict):
> -        if type_ in trans:
> -            return _transform_type(type_, trans[type_])
> -        elif None in trans:
> -            return _transform_type(type_, trans[None])
> -        else:
> -            return type_
> -    elif callable(trans):
> -        return trans(type_)
> -    else:
> -        raise ValueError("Invalid type transformation rule: %s" % trans)
> -
> -
> -def transform_type(type_, *trans):
> -    """Return a new type transformed according to the given rules.
> -
> -    Applies each of the transformation rules in trans in order.
> -
> -    If an element of trans is a string, return it.
> -
> -    If an element of trans is a function, call it with type_ as its only
> -    argument.
> -
> -    If an element of trans is a dict, search type_ in its keys. If type_ is
> -    a key, use the value as a transformation rule for type_. Otherwise, if
> -    None is a key use the value as a transformation rule for type_.
> -
> -    Otherwise, return type_.
> -
> -    Parameters
> -    ----------
> -    type_ : str
> -        Type to transform.
> -    trans : list of function or dict
> -        Type transformation rules.
> -    """
> -    if len(trans) == 0:
> -        raise ValueError
> -    res = type_
> -    for t in trans:
> -        res = _transform_type(res, t)
> -    return res
> -
> -
> -##################################################
> -# tcg -> host
> -
> -def _tcg_2_host(type_):
> -    if type_ == "TCGv":
> -        # force a fixed-size type (target-independent)
> -        return "uint64_t"
> -    else:
> -        return type_
> -
> -TCG_2_HOST = {
> -    "TCGv_i32": "uint32_t",
> -    "TCGv_i64": "uint64_t",
> -    "TCGv_ptr": "void *",
> -    None: _tcg_2_host,
> -    }
> -
> -
> -##################################################
> -# host -> host compatible with tcg sizes
> -
> -HOST_2_TCG_COMPAT = {
> -    "uint8_t": "uint32_t",
> -    "uint16_t": "uint32_t",
> -    }
> -
> -
> -##################################################
> -# host/tcg -> tcg
> -
> -def _host_2_tcg(type_):
> -    if type_.startswith("TCGv"):
> -        return type_
> -    raise ValueError("Don't know how to translate '%s' into a TCG type\n" % type_)
> -
> -HOST_2_TCG = {
> -    "uint32_t": "TCGv_i32",
> -    "uint64_t": "TCGv_i64",
> -    "void *"  : "TCGv_ptr",
> -    "CPUArchState *": "TCGv_env",
> -    None: _host_2_tcg,
> -    }
> -
> -
> -##################################################
> -# tcg -> tcg helper definition
> -
> -def _tcg_2_helper_def(type_):
> -    if type_ == "TCGv":
> -        return "target_ulong"
> -    else:
> -        return type_
> -
> -TCG_2_TCG_HELPER_DEF = {
> -    "TCGv_i32": "uint32_t",
> -    "TCGv_i64": "uint64_t",
> -    "TCGv_ptr": "void *",
> -    None: _tcg_2_helper_def,
> -    }
> -
> -
> -##################################################
> -# tcg -> tcg helper declaration
> -
> -def _tcg_2_tcg_helper_decl_error(type_):
> -    raise ValueError("Don't know how to translate type '%s' into a TCG helper declaration type\n" % type_)
> -
> -TCG_2_TCG_HELPER_DECL = {
> -    "TCGv"    : "tl",
> -    "TCGv_ptr": "ptr",
> -    "TCGv_i32": "i32",
> -    "TCGv_i64": "i64",
> -    "TCGv_env": "env",
> -    None: _tcg_2_tcg_helper_decl_error,
> -    }
> -
> -
> -##################################################
> -# host/tcg -> tcg temporal constant allocation
> -
> -def _host_2_tcg_tmp_new(type_):
> -    if type_.startswith("TCGv"):
> -        return "tcg_temp_new_nop"
> -    raise ValueError("Don't know how to translate type '%s' into a TCG temporal allocation" % type_)
> -
> -HOST_2_TCG_TMP_NEW = {
> -    "uint32_t": "tcg_const_i32",
> -    "uint64_t": "tcg_const_i64",
> -    "void *"  : "tcg_const_ptr",
> -    None: _host_2_tcg_tmp_new,
> -    }
> -
> -
> -##################################################
> -# host/tcg -> tcg temporal constant deallocation
> -
> -def _host_2_tcg_tmp_free(type_):
> -    if type_.startswith("TCGv"):
> -        return "tcg_temp_free_nop"
> -    raise ValueError("Don't know how to translate type '%s' into a TCG temporal deallocation" % type_)
> -
> -HOST_2_TCG_TMP_FREE = {
> -    "uint32_t": "tcg_temp_free_i32",
> -    "uint64_t": "tcg_temp_free_i64",
> -    "void *"  : "tcg_temp_free_ptr",
> -    None: _host_2_tcg_tmp_free,
> -    }
Richard Henderson Feb. 25, 2023, 6:38 p.m. UTC | #4
On 2/25/23 00:22, Daniel Henrique Barboza wrote:
> Richard,
> 
> Not sure if I forgot or missed something but this patch breaks my build as follows:
> 
> $  make -j
>    GIT     ui/keycodemapdb tests/fp/berkeley-testfloat-3 tests/fp/berkeley-softfloat-3 dtc
> [1/885] Generating trace/trace-hw_hyperv.c with a custom command
> FAILED: trace/trace-hw_hyperv.c
> /usr/bin/python3 ../scripts/tracetool.py --backend=log --group=hw_hyperv --format=c 
> /home/danielhb/work/qemu/hw/hyperv/trace-events trace/trace-hw_hyperv.c
> Traceback (most recent call last):
>    File "/home/danielhb/work/qemu/build/../scripts/tracetool.py", line 19, in <module>
>      from tracetool import error_write, out, out_open
>    File "/home/danielhb/work/qemu/scripts/tracetool/__init__.py", line 21, in <module>
>      import tracetool.transform
> ModuleNotFoundError: No module named 'tracetool.transform'


I saw the same thing on gitlab, but not on my laptop.  Weird.

> It seems that tracetool.py is still referring transform. This fixes the build
> for me:
> 
> $ git diff
> diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
> index 5393c7fc5c..c361815bc1 100644
> --- a/scripts/tracetool/__init__.py
> +++ b/scripts/tracetool/__init__.py
> @@ -18,7 +18,6 @@
> 
>   import tracetool.format
>   import tracetool.backend
> -import tracetool.transform

I also removed some code below that used these symbols; they themselves appear to be unused.


r~
Song Gao Feb. 27, 2023, 3:03 a.m. UTC | #5
在 2023/2/26 上午2:38, Richard Henderson 写道:
> On 2/25/23 00:22, Daniel Henrique Barboza wrote:
>> Richard,
>>
>> Not sure if I forgot or missed something but this patch breaks my 
>> build as follows:
>>
>> $  make -j
>>    GIT     ui/keycodemapdb tests/fp/berkeley-testfloat-3 
>> tests/fp/berkeley-softfloat-3 dtc
>> [1/885] Generating trace/trace-hw_hyperv.c with a custom command
>> FAILED: trace/trace-hw_hyperv.c
>> /usr/bin/python3 ../scripts/tracetool.py --backend=log 
>> --group=hw_hyperv --format=c 
>> /home/danielhb/work/qemu/hw/hyperv/trace-events trace/trace-hw_hyperv.c
>> Traceback (most recent call last):
>>    File "/home/danielhb/work/qemu/build/../scripts/tracetool.py", 
>> line 19, in <module>
>>      from tracetool import error_write, out, out_open
>>    File "/home/danielhb/work/qemu/scripts/tracetool/__init__.py", 
>> line 21, in <module>
>>      import tracetool.transform
>> ModuleNotFoundError: No module named 'tracetool.transform'
>
>
> I saw the same thing on gitlab, but not on my laptop.  Weird.
>
I always get this things.


[26/2330] Generating trace/trace-hw_block.h with a custom command
FAILED: trace/trace-hw_block.h
/usr/bin/python3 ../scripts/tracetool.py --backend=log --group=hw_block 
--format=h /root/qemu/hw/block/trace-events trace/trace-hw_block.h
Traceback (most recent call last):
   File "/root/qemu/build/../scripts/tracetool.py", line 19, in <module>
     from tracetool import error_write, out, out_open
   File "/root/qemu/scripts/tracetool/__init__.py", line 21, in <module>
     import tracetool.transform
ModuleNotFoundError: No module named 'tracetool.transform'

>> It seems that tracetool.py is still referring transform. This fixes 
>> the build
>> for me:
>>
>> $ git diff
>> diff --git a/scripts/tracetool/__init__.py 
>> b/scripts/tracetool/__init__.py
>> index 5393c7fc5c..c361815bc1 100644
>> --- a/scripts/tracetool/__init__.py
>> +++ b/scripts/tracetool/__init__.py
>> @@ -18,7 +18,6 @@
>>
>>   import tracetool.format
>>   import tracetool.backend
>> -import tracetool.transform
>
> I also removed some code below that used these symbols; they 
> themselves appear to be unused.
>
>
> r~
diff mbox series

Patch

diff --git a/meson.build b/meson.build
index 6cb2b1a42f..275399b8c2 100644
--- a/meson.build
+++ b/meson.build
@@ -2861,7 +2861,6 @@  tracetool_depends = files(
   'scripts/tracetool/format/log_stap.py',
   'scripts/tracetool/format/stap.py',
   'scripts/tracetool/__init__.py',
-  'scripts/tracetool/transform.py',
   'scripts/tracetool/vcpu.py'
 )
 
diff --git a/scripts/tracetool/transform.py b/scripts/tracetool/transform.py
deleted file mode 100644
index ea8b27799d..0000000000
--- a/scripts/tracetool/transform.py
+++ /dev/null
@@ -1,168 +0,0 @@ 
-# -*- coding: utf-8 -*-
-
-"""
-Type-transformation rules.
-"""
-
-__author__     = "Lluís Vilanova <vilanova@ac.upc.edu>"
-__copyright__  = "Copyright 2012-2016, Lluís Vilanova <vilanova@ac.upc.edu>"
-__license__    = "GPL version 2 or (at your option) any later version"
-
-__maintainer__ = "Stefan Hajnoczi"
-__email__      = "stefanha@redhat.com"
-
-
-def _transform_type(type_, trans):
-    if isinstance(trans, str):
-        return trans
-    elif isinstance(trans, dict):
-        if type_ in trans:
-            return _transform_type(type_, trans[type_])
-        elif None in trans:
-            return _transform_type(type_, trans[None])
-        else:
-            return type_
-    elif callable(trans):
-        return trans(type_)
-    else:
-        raise ValueError("Invalid type transformation rule: %s" % trans)
-
-
-def transform_type(type_, *trans):
-    """Return a new type transformed according to the given rules.
-
-    Applies each of the transformation rules in trans in order.
-
-    If an element of trans is a string, return it.
-
-    If an element of trans is a function, call it with type_ as its only
-    argument.
-
-    If an element of trans is a dict, search type_ in its keys. If type_ is
-    a key, use the value as a transformation rule for type_. Otherwise, if
-    None is a key use the value as a transformation rule for type_.
-
-    Otherwise, return type_.
-
-    Parameters
-    ----------
-    type_ : str
-        Type to transform.
-    trans : list of function or dict
-        Type transformation rules.
-    """
-    if len(trans) == 0:
-        raise ValueError
-    res = type_
-    for t in trans:
-        res = _transform_type(res, t)
-    return res
-
-
-##################################################
-# tcg -> host
-
-def _tcg_2_host(type_):
-    if type_ == "TCGv":
-        # force a fixed-size type (target-independent)
-        return "uint64_t"
-    else:
-        return type_
-
-TCG_2_HOST = {
-    "TCGv_i32": "uint32_t",
-    "TCGv_i64": "uint64_t",
-    "TCGv_ptr": "void *",
-    None: _tcg_2_host,
-    }
-
-
-##################################################
-# host -> host compatible with tcg sizes
-
-HOST_2_TCG_COMPAT = {
-    "uint8_t": "uint32_t",
-    "uint16_t": "uint32_t",
-    }
-
-
-##################################################
-# host/tcg -> tcg
-
-def _host_2_tcg(type_):
-    if type_.startswith("TCGv"):
-        return type_
-    raise ValueError("Don't know how to translate '%s' into a TCG type\n" % type_)
-
-HOST_2_TCG = {
-    "uint32_t": "TCGv_i32",
-    "uint64_t": "TCGv_i64",
-    "void *"  : "TCGv_ptr",
-    "CPUArchState *": "TCGv_env",
-    None: _host_2_tcg,
-    }
-
-
-##################################################
-# tcg -> tcg helper definition
-
-def _tcg_2_helper_def(type_):
-    if type_ == "TCGv":
-        return "target_ulong"
-    else:
-        return type_
-
-TCG_2_TCG_HELPER_DEF = {
-    "TCGv_i32": "uint32_t",
-    "TCGv_i64": "uint64_t",
-    "TCGv_ptr": "void *",
-    None: _tcg_2_helper_def,
-    }
-
-
-##################################################
-# tcg -> tcg helper declaration
-
-def _tcg_2_tcg_helper_decl_error(type_):
-    raise ValueError("Don't know how to translate type '%s' into a TCG helper declaration type\n" % type_)
-
-TCG_2_TCG_HELPER_DECL = {
-    "TCGv"    : "tl",
-    "TCGv_ptr": "ptr",
-    "TCGv_i32": "i32",
-    "TCGv_i64": "i64",
-    "TCGv_env": "env",
-    None: _tcg_2_tcg_helper_decl_error,
-    }
-
-
-##################################################
-# host/tcg -> tcg temporal constant allocation
-
-def _host_2_tcg_tmp_new(type_):
-    if type_.startswith("TCGv"):
-        return "tcg_temp_new_nop"
-    raise ValueError("Don't know how to translate type '%s' into a TCG temporal allocation" % type_)
-
-HOST_2_TCG_TMP_NEW = {
-    "uint32_t": "tcg_const_i32",
-    "uint64_t": "tcg_const_i64",
-    "void *"  : "tcg_const_ptr",
-    None: _host_2_tcg_tmp_new,
-    }
-
-
-##################################################
-# host/tcg -> tcg temporal constant deallocation
-
-def _host_2_tcg_tmp_free(type_):
-    if type_.startswith("TCGv"):
-        return "tcg_temp_free_nop"
-    raise ValueError("Don't know how to translate type '%s' into a TCG temporal deallocation" % type_)
-
-HOST_2_TCG_TMP_FREE = {
-    "uint32_t": "tcg_temp_free_i32",
-    "uint64_t": "tcg_temp_free_i64",
-    "void *"  : "tcg_temp_free_ptr",
-    None: _host_2_tcg_tmp_free,
-    }