2012-11-30 33 views
4

是否有可能在没有安装python的情况下让Z3在提供posix API的系统上运行?在没有python的posix系统上安装Z3?

我已经看到新版本4.3在构建过程中已经使用了python(scripts/mk_make.py)。 关于4.1之类的旧版本有什么用?是否可以让它在没有python的情况下在posix上运行?

回答

2

Python在您的系统中不可用吗?

Python始终用于自动生成Z3代码库的某些部分。在第一个源代码版本中,我们包含了自动生成的代码。实际上,那时候,我们正在使用python + sed + awk + ​​grep的组合来生成代码的这些部分。第一个版本的另一个问题是Windows的构建系统(+ Visual Studio)与其他平台的构建系统完全不同。 Makefiles for Linux和OSX源自Visual Studio项目文件。一些用户也开始报告Linux和OSX的构建系统的问题。因此,为了减少这些问题,并有一个统一的构建系统,我们决定使用Python(只有蟒蛇)到:

  • 自动生成代码(绑定不同的语言,API日志支持等)
  • 检查要求系统
  • 生成的Makefile
  • 和自动化的任何其他形式的

Python是我们,因为它在大多数系统中非常有吸引力的(甚至非POSIX兼容的一个S)。我们可以轻松编写便携式脚本。而且,在我们做了开关之后,我们可以在更多的平台上编译Z3。我们在Windows,Linux(Mint,Ubuntu,Suse等),OSX,Cygwin和FreeBSD上成功编译了它。 在“unstable”(即正在进行中)分支中,我们甚至不需要autoconf,我们使用python来执行所有系统特定的配置。要构建Z3,我们只需要:python,C++编译器(Visual Studio C++,g ++或clang ++),ar(在非Windows平台上),make(或nmake)。这是一组非常小的要求。默认情况下,Python在大多数平台上都可用。

这就是说,是否有可能删除python的要求?是的,但它必须用别的东西代替python。一些东西,这将允许我们执行上述所有任务。看看目录scripts,地址为http://z3.codeplex.com/SourceControl/changeset/view/0c1f2a82818a, 我们必须将所有这些自动化脚本移植到可以在我们支持的所有平台上使用的东西。

相关问题