小编Sca*_*orn的帖子

使用maven-tycho导出Eclipse插件时出现"API限制错误":

我目前正在尝试使用Maven(Tycho扩展)构建和导出Eclipe插件,但它会引发一大堆API限制错误

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:09 min
[INFO] Finished at: 2015-03-02T13:57:35+03:00
[INFO] Final Memory: 78M/187M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.eclipse.tycho:tycho-compiler-plugin:0.22.0:compile (default-compile) on project GDBFifoBlocks: Compilation failure: Compilation failure:
[ERROR] /home/siarshai/Programming/Workspaces/eclipse-rcp-workspace/GDBFifoBlocksBackbone/src/neuromatrixplugin/fifoblocks/backbone/viewmodel/fifo/FIFOBlockBitFieldVMNode.java:[240]
[ERROR] update.setLabel(getMessageFormat().format(
[ERROR] messageAttrs, new StringBuffer(), null).toString(), columnIndex);
[ERROR] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ERROR] Access restriction: The method 'MessageFormat.format(Object[], StringBuffer, FieldPosition)' is not API (restriction on classpath entry '/home/siarshai/.m2/repository/p2/osgi/bundle/com.ibm.icu/52.1.1.v201501240615/com.ibm.icu-52.1.1.v201501240615.jar')
[ERROR] /home/siarshai/Programming/Workspaces/eclipse-rcp-workspace/GDBFifoBlocksBackbone/src/neuromatrixplugin/fifoblocks/backbone/viewmodel/fifo/FIFOBlockBitFieldVMNode.java:[345]
[ERROR] update.setLabel(getMessageFormat().format(combinedAttrs, new StringBuffer(), null).toString(), columnIndex);
[ERROR] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ERROR] Access restriction: The method 'MessageFormat.format(Object[], StringBuffer, …
Run Code Online (Sandbox Code Playgroud)

java eclipse plugins tycho maven

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

如何使LLVM更喜欢一台机器指令?

假设我在目标机器中有两个寄存器计算块:I和X.一个可以只对I寄存器应用整数运算,对X寄存器应用整数和浮点运算.还有两种类型的指令:

def ADDIi32 : MyInstruction< ..., (outs I:$Rs), (ins I:$Rm, I:$Rn), [(set i32:$Rs, (add i32:$Rm, i32:$Rn)]>;
...

def ADDXi32 : MyInstruction< ..., (outs X:$Rs), (ins X:$Rm, X:$Rn), [(set i32:$Rs, (add i32:$Rm, i32:$Rn)]>;
def ADDXf32 : MyInstruction< ..., (outs X:$Rs), (ins X:$Rm, X:$Rn), [(set f32:$Rs, (fadd f32:$Rm, f32:$Rn)]>;
...
Run Code Online (Sandbox Code Playgroud)

它们的编码方式不同,并且具有不同的asmstrings.所以llvm可以映射

int a, b;
a = a + b;
Run Code Online (Sandbox Code Playgroud)

到ADDIi32或ADDXi32但是

float a, b;
a = a + b;
Run Code Online (Sandbox Code Playgroud)

仅映射到ADDXf32.

我希望LLVM在可能的情况下使用ADDIi32,但不幸的是我发现没有办法告诉它一个指令(或寄存器)"成本"比另一个更高.Register类中的CostPerUse似乎是候选者,但它定义了组中其他寄存器的成本,而不是所有寄存器中的成本.我看到一些线程声称AddedComplexity(带有歧义描述的Instruction类中的字段)控制选择模式但不做任何事情.

LLVM似乎选择了第一条匹配指令.当我在ADDIi32之前定义ADDXf32和ADDXi32时,它只对任何类型的数据使用X函数.当我在ADDXf32和ADDXi32之前定义ADDIi32时,它使用I指令来表示整数数据但是没有任何内容可以浮动数据(很奇怪).我想我可以在ADDXf32和ADDXi32之间插入ADDIi32,但它们目前处于不同的.td文件中,看起来不像是长期解决方案.

有任何想法吗?

c++ llvm llvm-clang

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

可以将代码字符串传递给C\C++ - 宏吗?

例如,我想制作一个调试宏,在尝试执行代码字符串之前打印代码字符串.我想它看起来应该是那样的

#define TRACE(string) printf("Trying to execute: %s\n",\"string\"); \
                      string

...

void foo() {
  printf("1\n");
}
void bar() {
  printf("2\n");
}

int main() {
  ...
  foo();
  TRACE(bar(););
  ...
}
Run Code Online (Sandbox Code Playgroud)

预期产量

...
1
Trying to execute: bar();
2
...
Run Code Online (Sandbox Code Playgroud)

好吧,这不是人们如何做到的:编译器抱怨非法语法.有没有办法做到这一点?

c c++ macros

4
推荐指数
2
解决办法
547
查看次数

当自动化Eclipse的"Export as Feature"时,Maven/Tycho没有看到我的插件

我的工作区中有一个插件和一个功能项目.当我通过文件>导出为>功能手动导出功能时,一切正常.我正在尝试编写一个自动插件构建和导出脚本来摆脱这些苦差事.我将功能项目转换为Maven项目并填充pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>MyProject</groupId>
   <artifactId>NMGDBPluginFeature</artifactId>
   <version>1.0.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>

   <properties>
      <tycho-version>0.22.0</tycho-version>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
   </properties>

   <repositories>
      <repository>
         <id>eclipse-luna</id>
         <layout>p2</layout>
         <url>http://download.eclipse.org/releases/luna</url>
      </repository>
   </repositories>

   <build>
      <plugins>
         <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-maven-plugin</artifactId>
            <version>${tycho-version}</version>
            <extensions>true</extensions>
         </plugin>
      </plugins>
   </build>

</project>
Run Code Online (Sandbox Code Playgroud)

但脚本抛出:

[ERROR] Cannot resolve project dependencies:
[ERROR]   Software being installed: NMGDBPluginFeature.feature.group 1.0.0.qualifier
[ERROR]   Missing requirement: NMGDBPluginFeature.feature.group 1.0.0.qualifier requires 'GDBFifoBlocks [1.0.0.gdbfifoblocks]' but it could not be found
Run Code Online (Sandbox Code Playgroud)

怎么会发生这种情况?我以为pom.xml使用了项目的feature.xml,不是吗?什么是正确的配置?

eclipse eclipse-plugin tycho maven

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

如何在Git中线性化"分裂"合并历史?

它必须非常明显,但我发现无法做到这一点.每个手册都将变基描述为现有分支或简单交互式变基的顶部,这就是全部.假设,我有一个类似钻石形状的git历史:

*   949430f Merge commit (D) (HEAD, mybranch)
|\  
| * e6a2e8b (C)
* | 3e653ff (B)
|/  
*   9c3641f Base commit (A)
Run Code Online (Sandbox Code Playgroud)

我希望像以下一样保持历史:

*   949430f Combined commit (BCD)
|  
*   9c3641f Base commit (A)
Run Code Online (Sandbox Code Playgroud)

提交B和C可能会被融化或丢弃,无所谓,我只想保留结果.此外,我不想因为令人讨厌的恐慌解决而还原提交.

这里我试过的事情:

1)我不能通过简单压扁B和C来避免这种情况

git rebase -i HEAD~2
...
p 3e653ff (B)
f e6a2e8b (C)
...
Could not apply a91f3a4
Run Code Online (Sandbox Code Playgroud)

嗯,这有点可以理解,有一些冲突.

2)我无法通过压扁来解决这个问题.

git rebase -i -p HEAD~3
...
pick 9c3641f Base commit (A)
f 3e653ff (B)
f e6a2e8b (C)
pick 949430f Merge commit (D)
...
error: …
Run Code Online (Sandbox Code Playgroud)

git rebase

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

如何撤消PATH更改?(CentOS的)

导出PATH我不小心用新行复制/粘贴了路径,因此

export PATH=/usr/local/something:$PATH
Run Code Online (Sandbox Code Playgroud)

我刚

export PATH=/usr/local/something{\n}
Run Code Online (Sandbox Code Playgroud)

所以我想我所有有用的PATH条目都被删除了。如何撤消更改?

linux console path

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

标签 统计

c++ ×2

eclipse ×2

maven ×2

tycho ×2

c ×1

console ×1

eclipse-plugin ×1

git ×1

java ×1

linux ×1

llvm ×1

llvm-clang ×1

macros ×1

path ×1

plugins ×1

rebase ×1