タグ付けされた質問 「porting」

2
フリーソフトウェアを別の言語に移植する場合のライセンス条項
既存のソフトウェアパッケージを別の言語に移植するというアイデアを模索しています。Apache License 2.0の下でリリースされており、無料で配布されています。ただし、ライブラリの使用とそのコピーの作成には大きな違いがあります。もちろん、私は完全な信用を与えて、それがどこから来たのかについて正直に言うでしょう。そして、私は確かにポートからお金を稼ぐつもりはなく、他のプロジェクトでそれを使うだけです。 もちろん、私はライセンスを読みました。 著作権ライセンスの付与。このライセンスの条件に従い、各コントリビューターは、派生的作品の複製、準備、公開、公演、サブライセンス、および著作物およびそのような派生著作物をソースまたはオブジェクト形式で配布します。 [...] 再配布。次の条件を満たす場合は、改変の有無にかかわらず、ソースまたはオブジェクトの形式で、作品またはその派生作品のコピーを複製および配布できます。 a。作品または派生作品のその他の受領者には、このライセンスのコピーを提供する必要があります。そして b。あなたは、変更されたファイルに、あなたがファイルを変更したことを示す顕著な通知を表示させる必要があります。そして c。配布する派生著作物のソース形式で、派生著作物のいかなる部分にも関係しない通知を除く、著作物のソース形式からのすべての著作権、特許、商標、および帰属通知を保持する必要があります。そして d。作品に配布の一部として「NOTICE」テキストファイルが含まれている場合、配布する派生作品には、そのようなNOTICEファイルに含まれる帰属通知の読み取り可能なコピーを含める必要があります[...] 修正に独自の著作権表示を追加することができ、修正の使用、複製、または配布のための追加または異なるライセンス条項を提供することができます。それ以外の場合、作品は本ライセンスに記載されている条件に準拠します。 私は、ライセンス、既存の著作権表示、帰属などのコピーを熱心に保持している限り、ポート(「派生著作物」として)は著者の許可の有無にかかわらず完全に許可されます。 しかし、だからといって、その意味をすべて理解しているわけではありません。たとえば、ポートは必ず元のライセンスと同じライセンスを共有する必要がありますか? 私はまだ作業を開始していませんし、パッケージの作者とはまだ連絡していません(ただしそうします)。多くの作業が無駄になるリスクがあるかどうかを確認したいと思います。また、APIのみに基づいてクリーンルーム実装を作成する必要があるかどうか、または既存のソースコード(まだ見ていない)に基づいて作業を行うことができるかどうかを知る必要もあります。

5
スクラムは、新しいコンパイラバックエンドを実装するときに意味がありますか?
新しいプラットフォームに移植する必要がある既存の言語があります。既存のコンパイラのバックエンドを変更することで、おそらくこれを試みます。 バックエンドを書き直すのはかなりの作業です。INVEST基準に違反することなく、これを理にかなったストーリーに分解する方法はありません。 各ストーリーがどのように交渉可能であるかはわかりません-それらはすべて、動作するコンパイラに必要です。ストーリーの優先度はすべて同じであり、配信する順番は関係ありません。それらすべてを行う必要があります。 私が実装しているソフトウェアには、他の部分より優先度が低い部分があり、それを段階的に提供できることがわかります。ただし、Must Haveという重要なコアがあります。 私はスクラムを追いかけようと計画していますが、私はただ動きをしているだけですか? この種のプロジェクトに推奨されるプラクティスはありますか?

1
APIの維持とポートでのイディオムの使用
私はPythonからRustへの移植に取り組んでおり、RustでPythonほど自然に表現できないコードに遭遇しました。 これの1つのケースは、デフォルトのパラメーターを使用することです。 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
言語に依存しないユニットテストフレームワークはありますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 私は常に作業コードを書き直すことに懐疑的でした-コードの移植もこれに例外ではありません。ただし、TDDと自動テストの出現により、コードの書き直しとリファクタリングがはるかに合理的になりました。 古いコードの移植に使用できるTDDツールがあるかどうか、誰もが知っていますか?理想的には、次のことができます。 合格する(またはバグを見つけた場合は失敗する)古いコードの言語に依存しない単体テストを作成します。 失敗した他のコードベースで単体テストを実行します。 古いコードを見ずにテストに合格する新しい言語でコードを記述します。 別の方法として、ステップ1を「言語1でユニットテストを書く」と「言語2にユニットテストを移植する」に分割します。これにより、必要な労力が大幅に増加し、ポート(つまり、このコードベースでの継続的な統合の利点は得られません)。 編集:StackOverflowでこの質問に注目する価値があります。

1
LLVMを介してC ++アプリケーションからJavaへのポートを作成することは実行可能ですか
LLVMを使用してC ++アプリケーションをJavaバイトコードに移植することは、どの程度実行可能ですか(おそらくLLJVM)。 現在のところ、プロセスはC ++で記述されていますが、新しいクライアントでは、明らかにネイティブコードがない(JNIがない)Java仮想マシンを使用して、マルチプラットフォームでプログラムを実行できるようにする必要があります。アイデアは、生成されたjarを取得して別のシステム(Linux、Win、32ビット-64ビット)にコピーできるようにすることであり、動作するはずです。 周りを見回すと、C ++をLLVM IRコードにコンパイルしてから、そのコードをJavaバイトコードにコンパイルできるように見えます。生成されたコードが読み取り可能である必要はありません。 私はemscriptenを使用して同様のもので少しテストしました。これはC ++コードを取り、それをJavaScriptにコンパイルします。結果は有効なJSですが、完全に読み取ることができません(アサンブラーのように見えます)。 この技術を使用して、C ++からJavaバイトコードへのアプリケーションの移植を行った人はいますか? どのような問題に直面する可能性がありますか? 量産コードに対する有効なアプローチはありますか? いくつかのコメントの後で私のポイントをより明確にするために、おそらくポートが十分に使用されていない可能性があります。結果として、読み取り可能なソースコードは期待できません.javaバイトコードだけなので、今後開発される「ポート」ではありません。ターゲットのプラットフォームは、ネイティブのアッサンブラーではなく、Java JVMでなければなりません。 注:現在、いくつかの非標準C ++およびクローズソースライブラリがあることを承知しています。この非標準コードおよびすべてのクローズソースライブラリを削除し、無料のLibreオープンソースソフトウェアを使用する予定です。したがって、すべてのコードが標準C ++コードであると仮定しましょうコンパイル時に利用可能なすべてのコード。 注2:移植可能なC ++コードを記述して、それを目的のターゲットプラットフォームにコンパイルするオプションではありません。コンパイルされたプログラムはマルチプラットフォームでなければならず、したがってJVMを使用します。 注3:現在、Pythonや他の言語ベースに適用される同様のソリューションについては検討していませんが、それについても聞きたいと思います。これにより、ターゲットの実行可能ファイルはjavaバイトコードである必要がありますが、C ++を有効なpythonコンパイル済みコードにコンパイルするオプションがある場合は、それらについても聞きたいと思います。
9 java  c++  porting 

3
自分のプロジェクトのコードの移植を開始するのに最適な時期はいつですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 4年前休業。 他の環境で実行できるように別の言語で移植する予定の個人的なプログラミングプロジェクトがある場合、できるだけ早くコードの移植を開始し、2つのバージョンで同時に作業する方が理想的ですか?それとも、制作が大幅に遅くなるのでしょうか?プログラムのいくつかの主要なコンポーネントが完了するまで待つ必要がありますか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.