现在我使用clang将我的.c文件构建到.s文件中.而且我已经使用llvm API修改了IR.但是,现在我无法将修改后的IR保存到文件中.我想使用"LLVMWriteBitcodeToFile",但我找不到"LLVMOpaqueModule"的结构; 我想使用"WriteBitcodeToFile",它总是显示"类型不匹配".我还想知道如何将IR文件构建到可执行文件.
接下来是我用来保存模块的两种方法:
1,首先使用WriteBitcodeToFile
bool unbuffered = false;
llvm::raw_ostream ro(unbuffered);
WriteBitcodeToFile(m, ro);
Run Code Online (Sandbox Code Playgroud)
2,二次使用LLVMWriteBitcodeToFile
const char *Path = "hello2.s";
int ans = LLVMWriteBitcodeToFile(m, Path);
Run Code Online (Sandbox Code Playgroud)
注意:m是Module实例的一个点
我打电话ecs.create_service是这样的:
createServiceResponse = ecs.create_service(
clientToken='abc123',
cluster=options.cluster,
serviceName=options.service,
desiredCount=1,
taskDefinition='relay:' + str(revision),
role='ecsServiceRole',
loadBalancers=[
{
'loadBalancerName': options.elb,
'containerName': 'relay',
'containerPort': 8080
}
]
)
Run Code Online (Sandbox Code Playgroud)
请注意,clientToken中的值目前是abc123,但我尝试了各种不同的字符串.这个文件说我需要提供它以确保幂等性(http://boto3.readthedocs.org/en/latest/reference/services/ecs.html)但是我一直收到这个错误:
Traceback (most recent call last):
File "./deploy.py", line 103, in <module>
'containerPort': 8080
File "/usr/local/lib/python2.7/site-packages/botocore/client.py", line 301, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/usr/local/lib/python2.7/site-packages/botocore/client.py", line 386, in _make_api_call
raise ClientError(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (InvalidParameterException) when calling the CreateService operation: Creation of service was not idempotent.
Run Code Online (Sandbox Code Playgroud)
为什么?
我试图生成数组作为比较2阵列的结果:第一个数组有更多的元素,如:
array1: {
0 => "car1"
1 => "car2"
2 => "car3"
3 => "car4"
4 => "car5"
}
Run Code Online (Sandbox Code Playgroud)
和第二个数组没有所有元素:
array2: {
0 => "car1"
1 => "car4"
2 => "car5"
}
Run Code Online (Sandbox Code Playgroud)
因此,所有可能的类别(array1)和分配给post(array2)的类别(它是一个WordPress的东西).
我试图比较那些数组(但不是与array_diff()给我元素值的函数而不是boolean),并得到结果为true/false.所以我想比较数组的每个值并生成数组映射,或者使用array_combine()函数来获取这样的数组:
result_array: {
"car1": true,
"car2": false,
"car3": false
}
Run Code Online (Sandbox Code Playgroud)
等等...
输出数组的重要性包括所有类别及其结果(true,false).
有没有简单的方法可以做到或者它可能是我可以使用的功能?
I generate ir by use 'clang -S -emit-llvm test.c'.
int main(int argc, char **argv)
{
int* a=0;
a=(int *)malloc(sizeof(int));
printf("hello world\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
and this is the ir:
define i32 @main(i32, i8**) #0 {
%3 = alloca i32, align 4
%4 = alloca i32, align 4
%5 = alloca i8**, align 8
%6 = alloca i32*, align 8
store i32 0, i32* %3, align 4
store i32 %0, i32* %4, align 4
store i8** %1, i8*** %5, align 8 …Run Code Online (Sandbox Code Playgroud) #define MY_CONST 20
#define OTHER_CONST 10
Run Code Online (Sandbox Code Playgroud)
我的代码才有意义MY_CONST > OTHER_CONST.如何使用预处理器保证这一点?有这样的命令吗?
#assert MY_CONST < OTHER_CONST
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个通用的倒排索引的快速内存实现.我需要的是存储具有几百万个实体的权重的特征,并使用反向索引来计算使用各种距离函数的实体之间的相似性.
我可以在一些快速键值存储中存储实体的所有其他属性.
我希望我可以将Lucene用作倒置索引,但是无法看到我如何将文档与我自己的具有预先计算权重的自定义特征向量相关联.任何建议将不胜感激!
谢谢.
,我将 IR 定义为 3 地址代码类型表示(我意识到人们也可以将其表示为 AST 表示)。
我的理解是,在为命令式语言编写最佳实践编译器时,代码优化发生在 AST(可能最好使用访问者模式)和从 AST 生成的 IR 上。
(a) 对吗?
(b) 在生成 IR 之前最好在 AST 上处理哪种类型的优化步骤?(参考一篇文章/在线列表也欢迎,只要它涉及命令式语言)
我正在开发的编译器用于 Decaf(有些人可能知道),它具有相当深的 CFG 直至(单个)类继承;我将添加不属于它的功能,例如类型强制。它将完全手工编码(不使用任何工具)。这不是家庭作业;写它是为了好玩。
我正在用 python 编写一个项目,该项目最终应该在 LinkIt One IoT 设备上运行。
我已经编写了一些测试代码来检查我是否能够在 Arduino IDE 和 python 之间进行连接(我正在使用 Pycharm)。
测试代码是:
import serial
import time
arduino = serial.Serial('COM1', 115200, timeout=.1)
time.sleep(1) #give the connection a second to settle
arduino.write("Hello from Python!")
while True:
data = arduino.readline()
if data:
print data.rstrip('\n')
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,我得到:
C:\Users\????\PycharmProjects\untitled\venv\Scripts\python.exe C:/Users/????/PycharmProjects/untitled2/test.py
回溯(最近一次调用最后一次):文件“C:/Users/????/PycharmProjects/untitled2/test.py”,第 1 行,在导入序列中导入错误:没有名为序列的模块
使用 Node.js 致力于 PC 和基于 Arduino 的硬件之间的通信。最后一个设备是用 G 代码实现的,所以如果我发送 \xe2\x80\x98G0\xe2\x80\x99 我将收到两行;一个用于确认已收到指令,第二个用于确认数据。
\n\n我想使用 async/await 但出了点问题......代码如下:
\n\n'use strict'\nconst SerialPort = require('serialport')\nconst Readline = SerialPort.parsers.Readline\n\nconst cardPort = new SerialPort('COM6', {\n baudRate: 115200,\n parity: 'none',\n stopBits: 1,\n dataBits: 8,\n flowControl: false,\n usePromises: true,\n}, function(err) {\n if (err){\n console.log('error: ', err.message)\n port.close()\n } else {\n\n }\n})\n\nconst cardParser = new Readline({ delimiter: '\\r\\n' })\n\ncardPort.pipe(cardParser)\n\nfunction checkCard(port, parser){\n port.write('G0\\n', function () {\n console.log('message written')\n parser.on('data', (data) => { \n console.log(data)\n return (data)\n })\n })\n}\n\nasync function run …Run Code Online (Sandbox Code Playgroud) 我尝试使用 Johnny- Five 和 node.js 来运行脚本,使用 Leap Motion Controls。现在,当我尝试运行脚本时,它说:(错误:找不到模块“串行端口”)我尝试了 npm install -g 串行端口 它会通过然后给我很多红色的(错误)代码。我怎样才能解决这个问题 ?
D:>节点robotarm.js
module.js:338
throw err;
^
Error: Cannot find module 'serialport'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Board.Serial.detect (D:\node_modules\johnny-five\lib\board.js:70:7)
at new Board (D:\node_modules\johnny-five\lib\board.js:303:23)
at Object.<anonymous> (D:\robotarm.js:90:9)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
Run Code Online (Sandbox Code Playgroud)
然后我尝试
它给
npm WARN package.json github-url-from-git@1.1.1 No repository field.
npm http GET https://registry.npmjs.org/serialport
npm http 304 https://registry.npmjs.org/serialport
npm http GET https://registry.npmjs.org/optimist …Run Code Online (Sandbox Code Playgroud) llvm ×2
llvm-ir ×2
node.js ×2
python ×2
amazon-ec2 ×1
amazon-ecs ×1
arduino ×1
arrays ×1
boto3 ×1
build ×1
clang ×1
indexing ×1
lucene ×1
lucene.net ×1
optimization ×1
php ×1
serial-port ×1
windows ×1
wordpress ×1