首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

静态数据竞争检测工具之RELAY-安装和使用

RELAY同样也是基于中间语言编写的静态数据竞争检测工具 安装RELAY之前确保Ocaml安装完毕,可参考之前的文章 http://blog.csdn.net/yangzhen92/article/details/46980511 下载RELAY,可参考这里,选择0.10版本,解压 进入cil目录,执行下面操作 ./configure make make check 然后回到relay根目录,执行make操作 上述步骤完成之后,relay安装成功 进入racetest目录,执行make renew_small; make 命令 执行成功就能够看到测试结果 racetest中的测试用例的整体结果都保存在out目录中 而如果想要查看每一个测试用例的详细输出信息,则进入相关的子目录,以thread_tests为例 子目录中包含gcc-log.txt文件,内容如下 cd test_dir duppy -c threads2.c -I ../../include cd ../test_dir duppy -c threads.c -I ../../include 其中每个文件表示需要待测试源文件 进入ciltrees目录, 这里可以发现有两个warnings.xml文件,都保存着数据竞争相关的信息

01
您找到你想要的搜索结果了吗?
是的
没有找到

泛型和元编程的模型:Java, Go, Rust, Swift, D等

在程序设计的时候,我们通常希望使用同样的数据结构或算法,就可以处理许多不同类型的元素,比如通用的List或只需要实现compare函数的排序算法。对于这个问题,不同的编程语言已经提出了各种各样的解决方案:从只是提供对特定目标有用的通用函数(如C,Go),到功能强大的图灵完备的通用系统(如Rust,C++)。在本文中,我将带你领略不同语言中的泛型系统以及它们是如何实现的。我将从C这样的不具备泛型系统的语言如何解决这个问题开始,然后分别展示其他语言如何在不同的方向上逐渐添加扩展,从而发展出各具特色的泛型系统。 泛型是元编程领域内通用问题的简单案例:编写可以生成其他程序的程序。我将描述三种不同的完全通用的元编程方法,看看它们是如何在泛型系统空的不同方向进行扩展:像Python这样的动态语言,像Template Haskell这样的过程宏系统,以及像Zig和Terra这样的阶段性编译。

03

ECNet:学习进化信息指导蛋白质工程

深度学习已经越来越多地应用于蛋白质工程领域。使用语言模型学习大规模序列的数据,得到序列分布的规律最为流行。但是,从Uniprot、Pfam等大规模序列库中学到的信息只能捕获广义上的context,缺乏对需要工程改造序列的特异性。在蛋白质工程中,学习整个序列空间context性质的模型,应对突变后的序列性质预测往往不够敏感。针对这一问题,伊利诺伊大学香槟分校的Huimin Zhao教授课题组与Jian Peng教授课题组发展了ECNet,可以挖掘全序列空间与同源序列内的进化信息(context),用以蛋白质工程中的序列功能预测。ECNet对于序列-功能的关系预测超过了现有的机器学习方法,该工作近期发表在Nature Communications上。

02

享学课堂谈-Python初学者的设计模式入门

有没有想过设计模式到底是什么?通过本文可以看到设计模式为什么这么重要,通过几个Python的示例展示为什么需要设计模式,以及如何使用。 设计模式是什么? 设计模式是经过总结、优化的,对我们经常会碰到的一些编程问题的可重用解决方案。一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码。反之,设计模式更为高级,它是一种必须在特定情形下实现的一种方法模板。设计模式不会绑定具体的编程语言。一个好的设计模式应该能够用大部分编程语言实现(如果做不到全部的话,具体取决于语言特性)。最为重要的是,设计模式也是一把双

08
领券