Home > Archives > 2011-03

2011-03

サイトの動作状況について

東北地方太平洋沖地震により被災された皆様に対して、心よりお見舞い申し上げます。
現在まだ復旧の最中と思いますが、一日も早い回復を願っています。

私の方で管理している、HSP関連サイト及びおにたま放送局(OBS)関連についての現状と予定についてお知らせ致します。一部、不自由をお掛けすることもあるかと思いますが、どうぞご理解とご協力をお願い致します。

■HSPTV!

    HSP関連の情報を提供しているHSPTV!(http://hsp.tv)サイトは、通常通りご利用頂けます。HSP3の関連アプリケーションであるHSPTVブラウザも、HSPTV!サイトと同様に通常通り利用可能です。

■www.onionsoft.net
■onitama.tv

    ONION software関連の情報を提供しているONION SOFT HOMEPAGE(http://www.onionsoft.net)サイト、及びおにたま放送局(OBS)関連サイト(http://onitama.tv)は、通常通りご利用頂けます。

■o2.zener.co.jp

    HSP対応のネットワークサービスである、O2サーバー及びO2関連ホームページは、計画停電への対応と節電のため、しばらくの間休止とさせて頂きます。

■dev.onionsoft.net

    OpenHSP、及びOpenHSPのsubversionリポジトリのサーバーは、関東地区(第4グループ)内にあるため計画停電のためサイトにつながらない時間があります。

■OBSLive

    3/19(土)に放送を予定していたOBSLiveについては、延期とさせて頂きます。次回の予定はまだ未定ですが、4月以降となります。

今後、大きく状況が変わる場合はまたお知らせ致します。これからも引き続き、宜しくお願い致します。

    このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをはてなブックマークに追加

  • Comments: 0
  • Trackbacks: 0

HSP3ソースコンバーター ver0.3

かなり前から、OpenHSP上でHSP3ソースコンバーター(hsp3cnv)の実験を行なっていて、少しずつ形になってきています。
hsp3cnvは、HSP3のコードを他のソースに変換するためのツールで、C++言語など他の言語及びプラットフォームに向けたソースの移行を可能にするためのツールです。現在のバージョンでは、HSP3のソース(.hsp)をC++言語のソース(.cpp)に変換することができます。これによりネイティブコード動作による高速化や解析に対するセキュリティ向上などが期待できます。
hsp3cnvは、OpenHSPからも最新版をダウンロードできますが、まとめたアーカイブをβ版としてここでも公開するとともに簡単な使用方法を記しておきます。

※注意
HSP3ソースコンバーターは、できる限りHSPのソーススクリプトを他のシステムで運用できるよう変換を行なうもので、すべてのHSPソーススクリプトの変換を保証するものではありません。このバージョンは、テスト版のため多くの機能が実装されていません。変換の流れや、システムの概要を知るための参考程度にお使い下さい。
ダウンロードはこちらからどうぞ。

  hspcnv03.zip (234.6 KiB)

おおまかな利用方法は以下の通りです。

  • 変換したいソースをスクリプトエディタで読み込み、オブジェクトファイルを作成します(HSPメニュー→オブジェクトファイル作成)。
    この時、最初の行に「#cmpopt varname 1」を入れておくと変数名などがそのまま生成されるので変換後のソースが見やすくなります。
  • ソースと同じフォルダに生成されたオブジェクトファイル(拡張子が.axのファイル)をソースコンバーターに渡します。コマンドプロンプト上でパラメーターを指定するのが正しい使用法ですが、axファイル(オブジェクトファイル)のアイコンを「hsp3cnv」にドロップするだけでも、同じフォルダにcppファイルが作成されます。(詳しくはドキュメントを参照してください)
  • ここから先は、Microsoft Visual StudioのC++コンパイラが必要になります。ここでは、VS2005で検証していますが、基本的には2008や無償で入手できるExpressでも同様に使用することができるはずです。(2010での検証はまだ行なっていません)
    Visual Studio上から、hsp3rtestフォルダ内にあるプロジェクトを開いてください。
  • 最初にそのままプロジェクトをコンパイル(ビルド)することができるかを確認してみてください。正常にビルドされると、MIAさん作のレイトレーシング(raytracing.hsp)が起動できるはずです。
  • ちなみにビルドの構成を「Release」にしていない場合は、実行速度は遅いままなので注意してください。
  • 自分で変換したソースをビルドする場合は、hsp3cnvで変換したソースを「test.cpp」とリネームしてhsp3rtestフォルダ内にコピーするか、hsp3rtestプロジェクトに登録されている「test.cpp」を削除して変換されたソースに入れ替えればOKです。
    Visual Studio上でビルドされたexeファイルは、Windows上でスタンドアロン動作するバイナリとなります。

C++言語上での、動作は以下の内容に制限されています。

・HSP3がサポートする基本命令、基本関数、システム変数
・int,double,str,label型の変数
・モジュール変数以外のモジュール機能(#module、#global)
・ユーザー定義命令、関数(#deffunc、#defcfunc)
・DLL及び、プラグイン呼び出し(仮対応)

以下の機能は、まだサポートしていません。

・プラグインによる変数型の拡張、コマンドタイプの拡張
・COMオブジェクト操作、COM型・Variant型変数
・モジュール変数
・varptr関数によるdll関数ポインタ取得機能

以下の機能は、このシステム上でのサポート予定がありません。

・run命令

サンプルで使用したMIAさんのレイトレーシング(raytracing.hsp)の場合、こちらの環境でテストした限りでは、1画面のレンダリング所要時間は以下のような結果になりました(環境により変動があります)。


HSP3.21実行時、17.429秒
hsp3cnvによるC言語実行時、9.655秒
hsp3cnvによるC言語最適化実行時、8.797秒

現状で、インタプリタ(通常)版のHSP3から2~5倍程度の速度になっています。(Debugビルドのままだと大幅に遅くなります)
VC++のPGO(Profile-Guided Optimization)を使用することで、さらに高速化を図ることができます。
HSP3ソースコンバーターの目的は、高速化やネイティブ化という面もありますが、C++など他の言語に変換することでWindows以外のプラットフォームでの動作につなげるという面も持っています。
特にスマートフォンやタブレット等のポータブルデバイスや、組み込み系の機器向けにライブラリを用意することで、Windows上で開発したものを手軽に移植するための環境として利用できます。
現在はまだ準備段階ですが、今後これからソースコンバーターを介して発展していく領域は限りなく広いと考えています。ぜひ、多くのユーザーに利用してもらえることを願っています。

また、OpenHSPではzakkiさんによりllvmを使用したJITコンパイラを搭載したバージョンも作成されています。こちらは、実行時にネイティブなコードを生成するもので、axファイルから直接コンパイルと同等の速度で実行を行なうことが可能です。詳しくは、以下のサイトをご覧ください。

peppermint.jp
http://peppermint.jp/

    このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをはてなブックマークに追加

  • Comments: 7
  • Trackbacks: 2

Home > Archives > 2011-03

Search
Feeds
Meta

Return to page top