小编R44*_*444的帖子

用DOT文件在python中用graphviz绘制Digraph

这是API参考graphviz.我找不到任何从现有dot源文件生成有向图的方法.方法喜欢renderview保存在新文件中.

如何从现有dot代码中显示图表?

graph dot graphviz python-2.7

10
推荐指数
2
解决办法
2万
查看次数

X86:`movsxd rdx,edx` 指令是什么意思?

我一直在玩intel mpx,发现它添加了一些我无法理解的指令。例如(英特尔格式):

movsxd rdx,edx
Run Code Online (Sandbox Code Playgroud)

我发现了这个,它谈到了一个类似的指令 - MOVSX.

从那个问题,我对这条指令的解释是,它需要双字节(这就是为什么有din movsxd)并将其复制到rdx寄存器(在两个最低有效字节中)并用该双字节的符号填充其余部分。

我的解释是否正确(我认为我错了)?如果没有,你能告诉我发生了什么吗?

assembly x86-64 mov

7
推荐指数
1
解决办法
4679
查看次数

pypi:如何检查包是否使用wheel

我想编写一个脚本来遍历 pypi 存储库上的所有包,以检查它们是否正在使用wheelegg.

我知道根据新标准,所有软件包都必须使用wheel而不是egg. 我在这个网站上找到了这个信息。他们还有使用和不使用wheel. 但是,他们只列出了前几个软件包。但是,我想检查 pypi 上的所有软件包。我知道在 pypi 网站上,他们显示是否可以下载文件类型,例如,表明没有可供下载的wheel文件类型,相反,表明可以下载wheel格式。这样的事情可以帮助我实现我的目标吗?

我当然不希望有人为我编写脚本,但我想知道如何确定包是否正在使用wheel.

python egg pip pypi python-wheel

6
推荐指数
1
解决办法
4067
查看次数

pypi:为什么不是所有的包都使用wheel?

这个pythonwheel网站说,前 360 个软件包中只有 300 个使用wheel. 我进一步分析了Python生态系统,发现前5000个包中大约有2961个包使用了wheel,而其他包则没有。

我的问题是:

  1. 如果他们不使用wheel,他们会使用吗egg
  2. 他们为什么不使用wheel?这只是作者的懒惰还是其他什么原因,阻止他们使用wheel。
  3. 我还从这篇文章中发现wheel停止安装时脚本(如果我错了,请纠正我)。那么,是不是由于某些wheel功能,这些软件包不能使用wheel(因为它们setup.py在安装过程中可能需要文件的某些功能,例如安装时脚本)。

python egg pip pypi python-wheel

6
推荐指数
1
解决办法
1300
查看次数

我可以检查 Qemu tcg IR 代码吗?如果是这样怎么办?

我正在尝试分析 QEMU tcg IR 代码

我看到这篇文章讨论了 QEMU 代码流程。根据该图,翻译发生在 target-xxx/translate.c,这就是 QEMU 将代码从源(或前端)翻译为 TCG IR 的地方。然后进一步在 tcg/xxx/tcg-target.c。

这个过程可以总结如下(至少根据我的理解) - 假设我们有x86一个前端和powerpc (ppc64abi32)一个后端,那么 -

x86--> TCG IR-->ppc64abi32

我想分析一下这段TCG IR代码。有什么方法可以生成此代码(这可能不相关,但例如,我们可以使用带有 clang 的标志 -S 生成 LLVM IR 代码)?

我自己做了一些研究,发现struct TranslationBlock(在文件 /include/exec/exec-all.h 中)这与 tcg IR 代码有关(所以,我尝试打印一些结构变量,但我不确定是否我正朝着正确的方向前进)。我还阅读了微型代码生成器自述文件,但找不到生成相关信息。

qemu

3
推荐指数
1
解决办法
1123
查看次数

处理堆芯情况

我有一些简单的代码(这是我拥有的较大代码的一个较小的示例):

#include <iostream>
#include <unordered_map>
#include <list>

// List of blocks
std::list<struct Block> Blocks;

class ObjInfo
{
private:
  int size;
public:
  ObjInfo(int size){this->size = size;}
  int get_size() {return size;}
};

struct Block
{
  // name of the block
  int x;
  // Actual variable stack
  std::unordered_map <int, ObjInfo*> objinfostack;
};

int main()
{
int x = 2;
while( x >= 0 )
{
  Block b;
  b.x = x;
  b.objinfostack.insert(std::make_pair(x, new ObjInfo(4)));
  --x;
  Blocks.push_front(b);
}
for(std::list<struct Block>::iterator i = Blocks.begin(); i!=Blocks.end(); ++i) …
Run Code Online (Sandbox Code Playgroud)

c++

1
推荐指数
1
解决办法
73
查看次数

X86:寻址模式-寄存器值更改

这可能很愚蠢,但是对这些类型的指令有一个小疑问:

MOV EBX,dword ptr [RAX + 0x28]
Run Code Online (Sandbox Code Playgroud)

这会改变值RAX吗?就像是:

移动RAX + 0x28in中指向的值EBX,然后添加Add RAX, 0x28。简而言之,RAX此操作后的更改值是否合适?

assembly x86-64 addressing-mode

0
推荐指数
1
解决办法
52
查看次数

标签 统计

assembly ×2

egg ×2

pip ×2

pypi ×2

python ×2

python-wheel ×2

x86-64 ×2

addressing-mode ×1

c++ ×1

dot ×1

graph ×1

graphviz ×1

mov ×1

python-2.7 ×1

qemu ×1