Questions tagged «porting»

2
将免费软件移植到另一种语言时的许可条款
我正在探索将现有软件包移植到另一种语言的想法。它是根据Apache License 2.0发布的,并且是免费分发的;但是使用库与创建库副本有很大的不同。我当然会全力以赴,并且诚实地说它的来源,我当然不打算从港口赚钱,只是将其用于其他项目。 我当然已经阅读了许可证,上面写着: 授予版权许可。在遵守本许可的条款和条件的前提下,每位贡献者特此授予您永久的,全球性的,非排他的,免费的,免版税的,不可撤销的版权许可,以复制,准备,公开展示,公开表演,分许可,并以“源”或“对象”形式分发作品和此类衍生作品。 [...] 重新分配。您可以在满足以下条件的情况下,以任何媒介(有或没有修改)以及以源或对象的形式复​​制和分发作品或其衍生作品的副本: 一种。您必须向该作品或衍生作品的任何其他接收者提供本许可的副本;和 b。您必须使任何修改过的文件带有明显的声明,指出您已更改文件;和 C。您必须以您分发的任何衍生作品的“源”形式保留该作品“源”形式的所有版权,专利,商标和出处声明,但不包括与该“衍生作品”的任何部分无关的那些声明;和 d。如果作品包含“注意”文本文件作为其分发的一部分,则您分发的任何衍生作品都必须包括该通知文件中包含的署名声明的可读副本[...] 您可以在自己的修改中添加自己的版权声明,并可以提供其他或不同的许可条款和条件,以供您使用,复制或分发您的修改,或任何此类衍生作品作为一个整体,但前提是您必须使用,复制和分发否则,作品应符合本许可中规定的条件。 听起来非常像端口(作为“衍生作品”)在获得作者许可或不获得作者许可的情况下都是完全允许的,只要我认真保留许可证的副本,现有的版权声明,署名等即可。 但这并不意味着我理解它的所有含义。例如,端口是否必须与原始端口共享相同的许可证? 我还没有开始任何工作,也没有联系软件包的作者(尽管我会的)。我想确定是否有浪费大量工作的风险。我还需要知道是否仅需要基于API进行无尘室实现,还是可以将工作基于现有的源代码(我尚未研究)。

5
实现新的编译器后端时,Scrum是否有意义?
我有一种需要移植到新平台的现有语言。我可能会通过更改现有编译器的后端进行尝试。 重写后端需要大量的工作。在不违反INVEST标准的情况下,我看不到将其分解为明智的故事的方法。 我看不到每个故事如何可以面议-它们都是正常工作的编译器所必需的。这些故事都具有同等优先权,无论我按什么顺序发表它们都无所谓。我需要全部做。 我正在实施的软件中某些部分的优先级比其他部分低,我可以看到我们可以逐步提供该部分。但是,必须具备一个重要的核心。 我计划尝试遵循Scrum,但是我只是在进行议案吗? 有针对此类项目的推荐做法吗?

1
维护API与在端口中使用成语
我正在研究从Python到Rust的移植,并遇到了一些代码,这些代码在Rust中无法像在Python中那样自然地表达。 一种情况是使用默认参数: class Foo: def __init__(self, a="Hello"): self._a = a 在Rust中,您可以使用构建器来实现: struct FooBuilder { a: &'static str, } struct Foo { _a: &'static str } impl FooBuilder { fn new() -> FooBuilder { FooBuilder { a: "Hello", } } fn change_a(self, new_a: &'static str) -> FooBuilder { FooBuilder { a: …

5
有没有语言不可知的单元测试框架?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 5年前关闭。 我一直对重写工作代码持怀疑态度-移植代码也不例外。但是,随着TDD和自动化测试的到来,重写和重构代码更加合理。 有谁知道是否存在可用于移植旧代码的TDD工具?理想情况下,您可以执行以下操作: 为通过的旧代码编写语言不可知的单元测试(如果发现错误,则失败)。 在失败的其他代码库上运行单元测试。 用通过测试的新语言编写代码,而无需查看旧代码。 另一种选择是将步骤1分为“用语言1编写单元测试”和“将单元2移植到语言2”,这将显着增加所需的工作量,并且很难证明是否要在维护旧代码库之后停止维护端口(也就是说,您无法在此代码库上获得持续集成的好处)。 编辑:值得注意在StackOverflow上的此问题。

1
通过LLVM从C ++应用程序移植到Java是否可行
使用LLVM(我猜是LLJVM)将C ++应用程序移植到Java字节码的可行性如何? 事实是,我们目前有一个用C ++编写的过程,但是新的客户端已经强制要求能够使用显然没有任何本地代码(没有JNI)的Java虚拟机以多平台方式运行该程序。这个想法是要能够将生成的jar并复制然后复制到不同的系统(Linux,Win,32位-64位),它应该可以正常工作。 环顾四周似乎可以将C ++编译为LLVM IR代码,然后将该代码编译为Java字节码。不需要所生成的代码是可读的。 我已经使用emscripten对类似的东西进行了一些测试,这需要C ++代码并将其编译为JavaScript。结果是有效的JS,但完全不可读(看起来像assambler)。 是否有人使用此技术将应用程序从C ++移植到Java字节码? 我们可能面对什么问题? 生产代码是否有效? 在发表一些评论后,为了更清楚地表明我的观点,也许端口没有被很好地使用,因此我不希望可读的源代码只是Java字节码,因此它不再是将要开发的“端口”,只是目标平台必须是Java JVM,而不是本机。 注意:我知道目前我们有一些非标准C ++和关闭源代码库,我们正在寻求删除此非标准代码和所有关闭源代码库,并使用Free Libre开源软件,因此,假设所有代码均为标准C ++代码,所有代码在编译时可用。 注意2:不能编写可移植的C ++代码然后将其编译到所需的目标平台,因为编译后的程序必须是多平台的,因此要使用JVM。 注意3:现在我们不在研究适用于Python或其他语言库的类似解决方案,但我也想听听它。我的意思是我们的目标可执行文件必须是java字节码,但是如果有一些选项可以将C ++编译为有效的python编译代码,我也想听听它们。
9 java  c++  porting 

3
什么时候是开始移植我自己的项目的代码的最佳时间?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 如果我有一个个人编程项目,打算用另一种语言移植,以便可以在其他环境中运行,那么,尽快开始移植代码并同时在两个版本上工作是否更为理想?还是那会大大减慢我的生产速度,我应该等到完成程序的一些关键组件后再开始吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.