HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0113
Y_repeatver0.2 HSP討論会45解決


Y_repeat

リンク

2017/1/13(Fri) 20:05:49|NO.77922

前回のスレッド
http://hsp.tv/play/pforum.php?mode=all&num=77515
tinyHSP (github)
https://github.com/dolphilia/tinyhsp
まとめサイト(wiki)
http://zuzazann.boy.jp/media_wiki_120/index.php?title=メインページ

討論をtinyHSP及びクリーンHSPに限らず
せっかくなのでHSP全般に関する討論もあっていいんじゃないでしょうか
スレッドの内容は
tinyHSPに関すること クリーンHSPに関すること HSPに関することでしてみたかった意見 他
小論文(エッセイ) 他 エッセイの日本語訳は「小論文」みたいですw
雑談:今年(今月)の抱負 ロールモデル 他
その他のご意見
ということで予定しています
Y_repeat的には HSP公式BBSのまとめサイトをなんとなくやってみたい気がしてました
しかし HSP公式BBS には書き込みが まとめるには多すぎるかんじがしてたので
特定のスレッド内の書き込み限定なら出来るかもしれない。という後付けがあったりw
Y_repeatは雑誌が結構好きなので
(最近はちょいちょいしか読んでないですが そもそもものすごい読んだ時期もなかったりw)
WEB MAGAZINE感覚でwikiを運営していけたらなぁと思います
そして せっかく関連wikiを運営するなら 対象を割と広くしても面白いかもしれないかな。と

思いました
ということで
「せっかくなのでHSP全般に関する討論もあっていいんじゃないでしょうか」と書きました

豊四季tinyBasicの書籍に 観念で遊べる人は すんなりプログラム言語を書ける
みたいに書いていました
とう訳で 観念で遊ぶ場所としての役割もここのスレッドに込めて
僕もここの場所を利用したいです

Y_repeat的には今回はなるべく裏側から支援したい気持ちがありまして
裏側から支援する意味でまとめサイトも作ったんですが
スレの後半あたりから 前に出過ぎな気もする残念感w

自分は当BBSであまり相手にされてない感があって
当スレッドもスルーされ気味だったらどうしようと思うんですけど
#なので他の方にスレッドを立てて欲しかったんですけど
そういう意見もないので 自分がスレッドを立ててみました
はてさてどうなることやら



この記事に返信する


Y_repeat

リンク

2017/1/18(Wed) 01:32:12|NO.77974

>dolphiliaさん
LINK先覗いてたらMAC版HSPにご尽力なされてた方みたいで
心強いですね
ソースコードは読んでないですが
更新履歴だけたまに覗いてますw
こうなったら
うちのwikiとdolphiliaさんとこのgithubでなんかコラボしたいですな



Y_repeat

リンク

2017/1/18(Wed) 08:16:41|NO.77976

HSPってもうWindows10を動作対象にしてるんですか?
それともまだなら 何月頃になるのでしょうか?

そろそろWindows10に上げようあな。と思ったので
3.4のHDDのマニュアルには
>動作環境
>Microsoft Windows 98 / Me
>Microsoft Windows 2000、XP ( NT4.0以降を含む )、Vista、7、8、8.1
って書いてますので



Y_repeat

リンク

2017/1/18(Wed) 08:17:23|NO.77977

開発言語がC言語の流れですが
Cは後方交換性がやたら保たれてるイメージなんですが
別の環境への対応はどうなるんでしょうか
バイナリまんま動けばいいんですけども
そうとも限らず
Cだからソースコードを渡して
再コンパイルしてもらう流れになりそうですが
HSPはゲーム用途が多いので自分的にはちょっとなあ。です
現状もHSPの中間言語をHSPのソースコードに
ものすごい戻せるみたいですがw
(だからいいんじゃない?みたい感じなのかな?)
そういう意味でJAVAで開発するとしても
バーチャルマシンのバージョンによって
色々なバージョンに対応しなきゃですよね
JAVAもバイナリからソースコードに戻せるとかなんとかですし
Cで書いて
Ubuntu/debian/fedora/ラズパイ
くらいに作者がコンパイルして複数のバイナリをDLするとかがいいのかもですね
後winとMACと
gccなら変更なしでコンパイルはいけそうだと思ってます



Y_repeat

リンク

2017/1/23(Mon) 03:01:14|NO.78010

せっかくスレを立てたので要望とか書きます

関数と命令が混在しててたまに頭がこんがらがるので
#voiddefcfunc
とか
#voidmodcfunc
とかの導入はどうでしょうか
返り値がvoidの関数です
メリットは
これらの導入で
引数とかの書式が()あるかんじで統一できます

自作言語の構想は
mingw+cyzwin(tcl/tk)の採用を調べてます
cyzwin導入の必須は敷居が高いですが
tcl/tkは結構好感持ってるんですよねー
HSP書式のGUIから大分離れちゃいそうですがw
近いかんじのとこはHSPに似せようとは思ってマス

>dolphiliaさん
今回はtinyHSPとのことで
完成したら研究させてくださいねー
そしてそれよりもその次回作の方が楽しみです
5000行〜10000行くらいの
中型言語を勝手に期待してますー



おにたま(管理人)

リンク

2017/1/24(Tue) 23:03:05|NO.78053

>Y_repeat さん

スレッドの作成とコメントありがとうございます。
HSPはWindows10(x86,x64)で動作します。3.5からは動作環境に入れたいと考えています。
Windows版HSPのソースは、C/C++ですがWindows固有のライブラリに多く依存しているため、移植性はあまり良くありません。
hspcmp(コンパイラ)及びHSP3Dish関連(HGIMG4含む)は、ある程度移植性の良いライブラリを使用しているため、幅広く使用できるかと思います。



Y_repeat

リンク

2017/1/26(Thu) 03:55:06|NO.78066

おはこんばんは

> 作者様へ
回答ありがとうございます
近いうちにWindows10に上げようと思います
Windows10は有効期限が無期限とかどっかで読んで それで
導入してみたくなりました
大体10年はWindowsOSの有効期限あるかんじではありますが^^;

少々の移植性のなさならifdefマクロとかで
マクロで切り替えて記述出来るよなー
とは思いました

HSP3Dishのライブラリはそういう意味で転用させてもらおうかな?
と思いましたが 案外大きいんですね
openHSPザックリ眺めただけですが
何が理解を阻むのかと言えば
全体的に理解したいと思ってソースコードを読むから理解できないっぽいです
目的意識がぼやけてます
後、規模の割と大きいソースコード読んだことないですし

そういう意味では広げた風呂敷を包む
規模を圧縮したライブラリ構成のライブラリは存在価値あると思います



dolphilia

リンク

2017/1/29(Sun) 13:54:50|NO.78095

クリーンなHSPについて、
あまり討議されていな論題を中心に考えてみました。

1. 作ると仮定した際の専用エディターの仕様
2. 作ると仮定した際の専用エディターの実装方法
3. 作品の配布の支援についての検討
4. 作品の配布の支援のためのサーバーについての検討

---

1. 作ると仮定した際の専用エディターの仕様

最低限の仕様は、以下のようなものです。

- スクリプトの編集
- 保存と読み込み
- コンパイルと実行(コンパイラとエンジンの起動)
- 何らかの方法での作品の配布の支援
- 標準の文字コードはUTF-8

あるに越したことはない、その他の仕様は以下の通りです。

- 行番号の表示
- シンタックスハイライト
- 検索と置き換え
- コードの折りたたみ
- オートセーブ(自動保存)
- オートコンプリート(入力補完)
- 自動インデント
- フォント・カラーのテーマの変更
- プリント(印刷)
- 改行コード・エンコーディングの変更
- 行の折り返しの設定
- ソース情報の表示(行数・文字数)
- キーバインド(ワンキーヘルプ、F5起動など)
- etc...

---

2. 作ると仮定した際の専用エディターの実装方法

次のような選択肢が考えられます。

- 各OSごと個別に作る
- Electronのようなマルチプラットフォーム環境で作る

Windows版のエディターを移植するという選択肢は、
移植性の関係でおそらくないと思われます。

---

3. 作品の配布の支援についての検討

次のような選択肢が考えられます。

- 実行ファイルを作成する機能
- 配布用の実行エンジンを用意して、中間言語等をパックする
- 配布用のプロジェクトを用意して、中間言語等をパックする
- HSPTV、HSP部屋のようなサーバーと連携する

1つ目の方法が理想ですが、
Windows以外のOSでは難しいと思われます。

2つ目は、
実行エンジンと同じフォルダ内に、
パックしたファイルあるいは生成した中間言語を置いて、
ZIP等などに圧縮して配布するパターンです。

3つ目は、
用意されたVisualStudioなどのプロジェクトをダウンロードして、
各自でコンパイル・リリースしてもらうパターンです。
開発環境を導入する手間がありますが、
WindowsストアやApp Storeでの配布を視野に入れることができます。

4つ目は、
HSPTVブラウザやHSP部屋のような作品を共有できるサイトに、
作品をアップロードできる機能をエディターに内蔵するパターンです。
モバイル版を念頭に置いた仕様です。

---

4. 作品の配布の支援のためのサーバーについての検討

モバイル版のHSPでは実行ファイルを生成することができないので、作品をアップできるサーバーが必要になると思われます。それはちょうどHSPTVブラウザやHSP部屋のようなものです。

---

以上です。



kikeroga

リンク

2017/1/30(Mon) 13:02:18|NO.78097

dolphiliaさん

> 3. 作品の配布の支援についての検討

ソースファイルやデータファイルを移行すればOKでしょ!とだけ
HSP導入済を前提に考えてましたが、配布支援があるにこしたことはないですね。

> - 配布用の実行エンジンを用意して、中間言語等をパックする

これは某RPGツクールなんかでもやってる方式ですかね?
個人的にはこちらが妥当なセンかなと考えます。



Y_repeat

リンク

2017/1/30(Mon) 17:57:33|NO.78098

> dolphiliaさん

> 専用エディター
別にいらなそうだな。とは思いました
既存のエディタの外部実行で
シェルかなんか書けば実行できそうな気がします
vimとかだと簡単に実装出来そう
cとかperlとかvimから簡単に実行出来たような
そういう意味ではHSP+Emacsとか憧れるなーw
ちょっと練習した程度です。自分→Emacs

>> 実行ファイルを作成する機能
>1つ目の方法が理想ですが、
>Windows以外のOSでは難しいと思われます。
自分の予定だとCのコードジェネレータぽくしたいので
生成したCのコードをgccでコンパイルしたいです
最適化すれば逆コンパイルもしにくそう
代表的のOSごとにコンパイルして配布的な
gccでコンパイル出来ればOSは選ばない的な言語だとね

コードジェネレータぽくしたいので
C言語まんまを中間言語にするのも大変そうなので
自分だと中間言語には翻訳したくないよーな
って書いてるの中間言語の段階ですが

って
kikerogaさんの意見だと
>これは某RPGツクールなんかでもやってる方式ですかね?
RPGツクールもRuby採用してるので
C言語まんまでも包めるかもしれませんね

自分的言語の長期的展望では
RPGツクールぽくしたくもあるんですよね



dolphilia

リンク

2017/2/2(Thu) 14:43:26|NO.78102

kikerogaさん、ご意見ありがとうございます。

> HSP導入済を前提に考えてましたが

そういえば最初に提案された資料にそう書いてありましたね。

> ソースファイルやデータファイルを移行すればOK

たしかにコードとデータのみの配布だけで完結できたら、
クールでいいなあ、と思います。

---

Y_repeatさん、ご意見ありがとうございます。

> 自分の予定だとCのコードジェネレータぽくしたいので

C言語へのコードジェネレータ、いい考えですね。

私も以前に、
Javascript風のコードをHSPコードに変換する、
コード変換器を作ったことがありました。

http://dolphilia.github.io/althsp/

正規表現を使って、
無理やり置き換えするというもので、
速度と精度の面で難がある、
いわば失敗作なのですが。;^^

---

クリーンなHSPについて、考えたことの続きです。

1. 対象となるユーザー層は?
2. オブジェクトファイルを生成するべきか
3. フィードバックに関する葛藤
4. クリーンさを最重要視すると仮定した場合の考え
5. 必要最低限の拡張

---

1. 対象となるユーザー層は?

クリーンHSPの対象とするユーザーはどのような人たちなのでしょうか。
HSP経験者でしょうか。

- HSPユーザー
- 非HSPユーザー

プログラミングをどの程度たしなむでしょうか。

- 初心者(プログラミングは初めて)
- 初級者(少しは触ったことがある)
- 中級者(ある程度の作品を作ったことがある)
- 上級者(業務あるいは趣味として日常的に書いている)

私は「非HSPユーザー」で「プログラミング初心者」を想定していましたが、
(それで「スマホでゲームが作れる」などの提案をした次第です)
もしかすると、むしろHSPのヘビーユーザーを対象しているのかも、
とも思い、考えが揺れています。

---

2. オブジェクトファイルを生成するべきか

本家HSPはaxファイルを生成します。

そのようなわけで、
クリーンなHSPも、それに倣うべきとは思いますが、
生成しないパターンについても考慮しています。

オブジェクトファイルを生成しないメリットは、
セキュリティが若干向上することです。
オブジェクトファイルが汚染されている可能性を、
チェックする手間が省けるからです。

オブジェクトファイルを生成するメリットは、
速度が向上することと、
実行エンジンの実装が若干簡潔になるです(たぶん)。

---

3. フィードバックに関する葛藤

クリーンなHSPの成果を、
本家にフィードバックしたいという思いと、
その難しさの間で葛藤があります。

本家のOpenHSPに直接コミットするのが、
一番手っ取り早い方法だと思います。

とはいえ、
全く別のプロジェクトとしてフォークしてしまった方が、
作業はやりやすいと感じています。

しかし、そうなると、
本家HSPでの更新を手動で反映させなければならなくなる、
という課題が出てきます。

そしてそれは、元のコードを改変すればするほど、
難しくなっていきます。

本家HSPと足並みを揃えたいという思いはありますが、
現実的なところ難しいので、そこは妥協するしかないのかな、
と考えています。

何か良い方法があるでしょうか。

---

4. クリーンさを最重要視すると仮定した場合の考え

前スレッドで「機能拡張はしない」とありましたが、
ここは仮に、クリーンさを最重要視するものと仮定して、
考えを進めてみます。

前スレッドでダウンロードできる、
sakuraさんの作成した資料を見ていると、
よりクリーンにできそうな仕様がいくつか見つかります。

例えば、カレント情報を扱う命令を挙げると(posなど)、
新たに、サイズのカレント情報を扱うsize命令があっても良いような気がします。

他に、font命令は、
第3パラメータに16を指定することでアンチエイリアシングを指定できますが、
それをくくり出して、smooth命令などに置き換えるのは、
クリーンなやり方のように思えます。

スムージングのカレント情報とも捉えることができるので、
line命令などにも適用できるからです。

---

5. 必要最低限の拡張

- OS情報の取得
- HiDPIへの対応

上の2つはマルチプラットフォームにする上で、
拡張する必要のある機能だと思っています。



草ww

リンク

2017/2/2(Thu) 23:02:04|NO.78103

なんかジットハブ探してたらこんなんでてきたんだがwwwwm
https://github.com/exrd/neteruhsp



kikeroga

リンク

2017/2/3(Fri) 10:46:35|NO.78106

おわー、クリーンHSPCLが出来てるじゃないですか!
クリーンなHSPの第一弾というか、こりゃ何気にすげぇー

HSPCL版スタトレも試してくれてるみたいです。
うれしいなぁ、移植した甲斐がありましたよ(^o^)

早速ウチのLubuntuにも入れねば!

ところでなんで neteru (寝てる?)なんでしょうね?
作者はexrdさんという方…ネコだから?

草wwさん、お知らせ有難うございます!



Y_repeat

リンク

2017/2/4(Sat) 00:37:54|NO.78119

> dolphiliaさん

先を越されてしまい 凹んでたらどうしようかなー。と

これはこれで気を取り直して

実装の先鞭を取ってくれた的な

新規開発ではなく 先にあるものの改造に

労力をシフトするのもまたいい。と思います

幸いNYSLライセンスで公開してくれてますし

老婆心でしたら すみません

>exrdさん

素早い実装。乙です

自分も5000行くらいの実装が欲しかったので嬉しいです

こんな自分にフィットした中型言語

しばらく写経して研究させていただきまーすw

>sadoさんfさん草wwさん

無許可で転載してしまい 確認の意を込めて

問題がありましたら 削除しますんで お知らせください



Y_repeat

リンク

2017/2/4(Sat) 00:57:10|NO.78120

自分なりの考えという範囲内においての意見です

>1. 対象となるユーザー層は?
HSPユーザーか非ユーザーかは区別しないでいいと思います
でもベーシックに好意を持ってる人だと思います

>プログラミングをどの程度たしなむでしょうか。
>- 初級者(少しは触ったことがある)
以上
>- 中級者(ある程度の作品を作ったことがある)
以下だと思います
HSPを改造したい人向けだと思います
改造したいけど HSPも結構規模が大きい故に
コンパクトな言語が欲しいというかんじだと思います
僕の考えの中では

>2. オブジェクトファイルを生成するべきか
作る人の判断に委ねた方がいいと思います
自分的には 自動的に作って コンパイルが終わったら
自動的に削除した方がいいんなじゃいかな?と思います
HSP本家も含めて

>3. フィードバックに関する葛藤
フィードバックは必須ではない。と思います
考えてたら 作成の進むも遅くなりそうです
でもこういう場所で意見を書いていたら
本家に取り込まれるかもしれませんね

>4. クリーンさを最重要視すると仮定した場合の考え
作る人が必要と思う機能なら付け加えるべきではないでしょうか
そういう意味で 改造のしやすい言語というのが
僕なりのクリーンHSPの位置づけです



Y_repeat

リンク

2017/2/12(Sun) 00:57:40|NO.78239

要望とどうやったらいいかわからない。を足して2で割ったかんじなんですが

ifの実装で if then else ifend をモジュールのオブジェクトとして表現すると
同じブロックの処理だと一つのモジュールに統合して
それぞれをモジュール変数として表現するとします

そうなると それぞれの要素にラベルをセッターしたりなんかすると
セッター命令を4種類実装する必要があるんですね

これで、例えばモジュール変数にpublicとか指定できると
4種類実装しなくても セッター的動作出来ますよね

なのでモジュール変数をpublicにしたいなあ。と

そしてモジュール変数を多数用意したい時
一行に全部記述するスタイルだと記述しきれないので
モジュール変数は#module記述の後ではなく
よくあるように別の行で記述したいなあ

ってかんじでした



おにたま(管理人)

リンク

2017/2/13(Mon) 01:06:44|NO.78255

>dolphilia さん

>クリーンなHSPの成果を、
>本家にフィードバックしたいという思いと、
>その難しさの間で葛藤があります。

HSPへのフィードバックは必ずしも求めているわけではないので、あまり気にしないでおいてください。
まったく新しいソースコードやツールなどであっても、こちらで流用可能なものであれば積極的に取り入れますし、独自に進化することもまた1つの道だと考えています。

最終的には、ユーザーにとって快適に利用できるか、わかりやすいかなどが重要で、クリーンなことがそこに寄与することを願っています。



kikeroga

リンク

2017/2/15(Wed) 15:33:03|NO.78264

このスレッドに書く内容かどうか少し迷いましたが…
遊んでいるうちに体裁が整ってきたので一応お知らせしたく。

neteruhsp(exrdさん)→TinyHSP9号(dolphiliaさん)→ときたものを、
ほんのちょっとだけ弄らせていただいたTinyHSPタイニー版です。

tinyhsp tiny版
https://github.com/kikeroga3/tinyhsp

尚、ソース(tinyhsp.cpp)はクロスプラットフォームなハズらしいので
macOS版、Linux版のバイナリ作れる方がおられましたら是非お願い致します。

「サンプルスクリプト作ったよー」という方もお待ちしております。
追加させていただきます。

※(注)
 皆さんの期待しているもっと機能多めのクリーンなHSPではありません。

【謝辞】
exrdさん、dolphiliaさんのバイナリも完成されたものです。
TinyHSPタイニー版は、まさに人の褌で相撲取ってますので exrdさん、dolphiliaさんに深謝致します。

それではー(^_^)/~



Velgail

リンク

2017/3/7(Tue) 21:26:48|NO.78417

//いつぞや宣言して忙しすぎて放置したHSP++をQtに対応させればワンチャンあるな

現在超多忙(HSP掲示板見るの何ヶ月ぶりだ……?)につき始めはしないけど。
HSP + C++ + Qt = マルチパラダイム・マルチプラットフォームなHSP?

想定される下記の質問

1. 対象となるユーザー層は?

クリーンHSPの対象とするユーザーは

- HSPユーザー
- 非HSPユーザー
両方。Qtの敷居を下げるついでに。

プログラミングをどの程度たしなむでしょうか。

- 中級者(ある程度の作品を作ったことがある)
- 上級者(業務あるいは趣味として日常的に書いている)
をターゲットとする。C++の敷居の高さが原因。ただ、そうでなければHSP++系を選ぶことはないだろう。

---

2. オブジェクトファイルを生成するべきか

しません。OSごとにオブジェクトファイルを生成してください。

---
3. フィードバックに関する葛藤

もしかしたらできるかも? (新機能の作り方に互換性があればの話。普通は無理)

---

4. クリーンさを最重要視すると仮定した場合の考え

オブジェクト指向を利用した合理的な考え方の導入、及び手続き型への簡易対応(HSPユーザー向け)

---

5. 必要最低限の拡張

- OS情報の取得
- HiDPIへの対応
多分できる

---

6. 問題点

ディスアセンブル禁止条項がどう考えても埋め込めない(QtがLGPLなため)
難解なC++を(HSPライクラッパーがあるとはいえ)直接触るというハードな仕様



Y_repeat

リンク

2017/3/15(Wed) 20:52:38|NO.78544

こんばんわ WBC楽しいっすね

>kikerogaさん
>このスレッドに書く内容かどうか少し迷いましたが…
そんなこと言わずにどんどん書き込んじゃってくださいよー

>Velgailさん
>現在超多忙(HSP掲示板見るの何ヶ月ぶりだ……?)につき始めはしないけど。
最近見ないなーと思っていたら(超!)
多忙だったんですね

さてさて たまにたまに考えているんですけど
HSPでBIGFloatを使いたいんですよね
小数点以下4桁まで。とか10桁までとか決め打ちすればLongIntを転用すればいいので
意外と簡単に実現できそうなんですが
考えがまとまらなくてイマイチコードに落とせないんですよね

小数点以下4桁
longintの下4ケタを小数とする
intの足し算、引き算、掛け算、割り算、大小比較
下4ケタを小数の数として計算する
実数、10000掛けて演算して10000で割る
intの足し算、引き算、掛け算、大小比較
割り算、割り算は、計算、ちょっと特殊かも
longint同士の演算
下4ケタを小数の数として計算する

小数点以下10桁
intを演算の対象外とする
10000000000掛けて演算して10000000000で割る
doubleの足し算、引き算、掛け算、大小比較
割り算、割り算は、計算、ちょっと特殊かも
longint同士の演算
下10ケタを小数の数として計算する

とかくらいまで構想してるんですが
なかなか漏れなくダブリなくでコードに落とせなくて
誰か書いてくれないかなーってかんじでしたw

考えてることをNETに書くと
それ以上やらないの公式。はたまに発言してるんですけど
自分の力量でこなせなさそうなので
逆に構想をUPしてみました



けものみち

リンク

2017/3/17(Fri) 03:23:51|NO.78564

モジュールを書いたスクリプトのその下にサンプルも付属しているスクリプトがあった時
#if 0 - #end で囲むのは一つの手法ですが、何かと0→1の書き換えが面倒です。

以下のような命令があれば公開するときもそのまま公開できるので便利な気がします


#module hogehoge #global //以下サンプル #ifself //この間は他のスクリプトから読み込まれたときは実行しない。 #endif



掘木

リンク

2017/3/23(Thu) 19:28:33|NO.78626

>NO.78544 Y_repeatさん
実装自体が安くないですね…

データメモリの管理としてはint64で済みますけども、道のりはこんな感じになるんかな?
1.型を増やす。増やした型内で完結できる演算を定義する。
2.増やした型から既存型、既存型から増やした型へのキャストを追加する。
3.実行コード内に散るintとdouble特例コード達を見つけ出し片っ端から対応コードを埋める。
4.サフィックスを用意し、定数を持てるようにする。

とりあえずBIGFloat同士の演算はたやすいでしょう。積が若干ややこしいかなくらい。

型を増やした分、キャストが正しくできれば演算もすんなりできるでしょう。右辺の型は左辺の型に合わせられるので。
ただ、doubleからのキャストは境界チェックをしないといろいろ問題が増えます。

実行コード内にいる数値型特例コードがゴロゴロ見受けれらるので、こちらをどうにか措置できれば実現まで大きく近づきます。
特にcomやAPI呼び出しなどの外部処理周りに多そうに見えます。

最後に、コンパイルや中間コードレベルでBIGFloatの型の値であることを宣言できるバイナリを用意する道筋を考えましょう。
そうしなければ必要に応じて逐一キャスト関数で囲わなければ値を作り出せません。非常に不便です。

おまけでHGIMGなどのHSPVAR型を読み込むような子に逐一実装が正常に動くか試さないとダメよ。


なお、HSPCMPには定数宣言にのみ使えるkというサフィックスがいます。これは何ものでしょうね?



Y_repeat

リンク

2017/3/24(Fri) 23:59:19|NO.78653

こんばんわ
返信ありがとうございます

>けものみちさん
要するにプログラムブルなマクロがあればいいと思います
現在のマクロは置き換えるだけですし
というのも上から順に1、2、3〜と連番振るのも大変なので
プログラムブルにマクロしたかったり
自分は
フラグ立てて上から順に代入してるかんじです
それでLINEマクロから連番求めてます

秀丸のマクロでなんとかならないかな?とか
けものみちさんの場合
グローバルなマクロを一つ定義するFILEを用意して
0と1を切り替えたいFILEからincludeして
1にしたい時はグローバルなマクロを一つ定義しているFILEを書き換えてから
実行してはどうですか
それらをバッチファイルにして
1にしたい時は外部FILEでバッチファイルを実行するかんじで

バッチ処理サンプルっす
http://seesaawiki.jp/zuzazann/d/bat%20HSP

でもプログラムブルなマクロってそそられます
テキスト+自力マクロってテーマは
挑戦してみたいかな。とはずっと抱えてやってます
環境はHSPでやるかは未定ですが
HSPスクリプトのジェネレートという形で還元できないかな。とも思っています

>堀木さん
返信ありがとうございます
もう少し考えてから返信いたします



Y_repeat

リンク

2017/3/29(Wed) 23:02:55|NO.78716

こんばんわ
float拡張は小数点以下。4桁か10桁への決め打ちなので
Plus_floatモジュールと命名しました
以下ver0.02です
進捗はとりあえずモジュールの枠組み作成とsetter getterの作成くらいっすw
http://zuzazann.boy.jp/media_wiki_120/index.php?title=Plus_float_module_ver0.02
近々鯖移転によりwikiも移転予定だったり
桁は決め打たなくても実現出来そうな気もしています

>堀木さん
型拡張とか大がかりなのは考えてないですね
オブジェクト演算型のモジュールで実装する予定です

アレですね 予定をNETに書いても返信もらえればOKなのか
やっぱ都市伝説の範疇なのか

でもしばらく実装に挑戦した上で書き込みたいので
あんまり仕様とか詳しく書かない方針です

ところで longint.dll のREADMEに
【 取扱種別 】フリーソフト
■著作権
・著作権は、blueleafが保有します。
と書いているんですが
こういうのって再配布不可なんですか?
ゲームで使用してて
HSPやらない人とかlongint.dll 導入していない人とかが
PLAYしようとしたら動かないですよ
ということは再配布可のdoubleの桁拡張モジュールとか
あった方がいいのだろうか?
再配布可のBIGNUMとか



Y_repeat

リンク

2017/4/1(Sat) 06:54:52|NO.78782

Linux版dish発表ありましたな
4/1のジョークなんじゃないかというのが気になるところですw
なんか作者様に丸投げしてるっぽい状態なのが申し訳ないです
自分も最近、全く使用してないUbuntuでやってみよっかなー。です
実は最近ラズパイも気になってまして
こうなったら購入に踏み切った方がいいのかな?

開発中のplus moduleはLongIntが再配布可なのかよくわからないので
大きい桁を扱うdoubleのモジュールも開発中に加えてみましたです
自分HSPに適正ないんじゃないか?疑惑で
しゃばいスクリプトでお恥ずかしいですが

http://zuzazann.boy.jp/media_wiki_120/index.php?title=Plus_modules



kikeroga

リンク

2017/4/1(Sat) 22:12:58|NO.78789

> Linux版dish発表ありましたな

きましたね、遂に!

ライブラリ導入前提ビルドなのが若干敷居が高いですが、
RasPiのほうが恐らくMainDishとみました(^o^)

HSPの可能性がさらに広がりそうで、これからが楽しみです。



Velgail

リンク

2017/4/2(Sun) 16:16:07|NO.78815

LongIntが再配布…… というお話に対応させるための道筋を立てました。是非参考にしてください。
必要であればGitHubで激闘しましょう。

1. hspsdkからhpi3typeをベースとする。
当該hpi3typeはfloatを組み込めるようにするライブラリのソースである。
2. C++ Boostからboost::multiprecision::cpp_intクラスをfloatの代わりに実装してコンパイル
3. ヘッダファイルを正しく記述する

これで容易に「実質的なパブリックドメイン(Boost Software License 1.0条項上)」のLongIntライブラリが作れます。
また、多倍長浮動小数点数(doubleより高い桁数のモノ)に関しては、同じように
boost::multiprecision::number<boost::multiprecision::cpp_dec_float<N>> (Nは桁数)
を利用して作れます。

C++界隈にどっぷりして溺れてください(笑)
そしてHSP++作りましょうw



Velgail

リンク

2017/4/3(Mon) 00:45:50|NO.78835

……というか、HSPboostとかやったら面白いんじゃないかな、うん。
ということで、リポジトリだけ作ってみた

https://github.com/Velgail/HSP-Boost/

ちなみに、Boostってこんなのが大量にあるライブラリ
http://www.boost.org/doc/libs/ (英語)

真面目に使うとHSPが凄まじいことに……



Velgail

リンク

2017/4/3(Mon) 08:43:00|NO.78840

ヤケクソになってVisual Studioでゴリゴリと徹夜コーディングしたら、出来た。
Boost-Longint、多分longint.hspのlongintとほぼ同じもの。

ライセンスはBoost Software License。C++部もBSLですが、
HSPSDKのライセンスについてはおにたまさんの解釈待ち。
サンプルソースがBSDだと、BSDの対応しなきゃならんのだが……
LongIntの方(オリジナル)はそれ書いてないんだよなぁ…… どうなのかな?

あと、
開発環境がVS2017とかいう超最先端のVSを使っているので、相当に事故のリスクがあります。
Boostは1.63です。
BOOST_ROOTとBOOST_LIBという環境変数を設定しなきゃコンパイルできません。

……といった話をGitHubに書いとかないとw

うるさいちょっと使って見れればいいんだ! という人は、リポジトリのReleaseLib/Boost-Longintから一式引っ張ってください。
asはcommon、dllはroot……ってアタリマエのことやっといてください。



Velgail

リンク

2017/4/3(Mon) 17:14:14|NO.78854

Wikiのhttp://zuzazann.boy.jp/media_wiki_120/index.php?title=Plus_modulesを察するに、
「固定小数点形式の型」と「long doubleないしそれ以上の型」
が求められている?

あってますか?>Y_repeatさん



Y_repeat

リンク

2017/4/3(Mon) 19:45:23|NO.78858

わーおつかれさまです

>Velgailさん
>「固定小数点形式の型」と「long doubleないしそれ以上の型」
>が求められている?
たぶん合ってまーす。2種類ですね
型っつーかモジュール変数を念頭に作ってました
自分はプログラム全般に適正ないのか
新しい型の作り方はわからないので

>ゴリゴリと徹夜コーディングしたら、出来た。
一晩で割とたくさん出来ますよね 自分も書いたの一晩でしたw

>asはcommon、dllはroot……ってアタリマエのことやっといてください。
自分はasもdllも同梱派ですね



Y_repeat

リンク

2017/4/3(Mon) 20:15:41|NO.78861

おつかれさまです

>開発環境がVS2017とかいう超最先端のVSを使っているので、相当に事故のリスクがあります。
ということは一年くらい寝かしてけば 大分安定します?

>「固定小数点形式の型」
やってみたかんじ 小数点以下10桁固定が実現できれば
小数点以下300桁とか(doubleがこのへんまでなので)
10000桁とか割と簡単に拡張出来そうですね
それ以下とかは科学計算っぽさが大きいので
HSPではやらない方がいいか
自分で拡張しましょう。なのかな



Velgail

リンク

2017/4/3(Mon) 21:21:05|NO.78864

事故というのは、Visual Studio 2017ユーザーがまだまだ少ないという意味でしてw

よし、ライブラリ群のプロジェクトを作ろう としたときの敷居が若干高いという意味ですw
まあ、今までのVSより圧倒的に高速インストール出来るので、この機会に是非(笑)

C++14で作りたいからっ(そういう理由)



Velgail

リンク

2017/4/4(Tue) 02:16:19|NO.78870

FixedPoint作ってみてるけど、これ……
「2回3回」インクルード出来るんかな(出来るならOK)
あと、その時の関数ポインタの位置は違うのかな? 同じかな?

//要検証



Velgail

リンク

2017/4/5(Wed) 05:17:20|NO.78919

//HSP-Boost Issue
Boost-Longintで文字列初期化が失敗する現象。

ベースとしたhpi3typeでも起きているため、どうやればいいのか不明だったり(汗)
……読まなきゃ



Velgail

リンク

2017/4/5(Wed) 05:59:24|NO.78920

ジタバタしたらNO.78919も出来た。
https://github.com/Velgail/HSP-Boost/

Boost-FixedPoint→plus float module代替C++ライブラリ
Boost-Longint→longint代替C++ライブラリ
Boost-LongFloat→未着工:plus double module代替C++ライブラリ

Boost-FixedPointは、1つの桁数(小数点以下何桁までが1通り)の物しか作れません。
複数パラメータ引ける可能性が出てきたので、あとでやれるとは思いますがね……
あと、FixedPointは全ての操作で、常に切り捨てを行うので注意?



Y_repeat

リンク

2017/4/5(Wed) 16:46:32|NO.78931

こんちわ。お疲れさまです
軽く動作確認してみました

sampleを実行してみたところ

c=boost_fixedpoint(c)
がerrorになりました

c=boost_fixedpoint(1.234)
に変更すると動きました

後はアレですね
小数点以下何桁まで表示できるか設定したいですね


#define boost-fixedLevel 4
という記述が計算桁数だと思いますが
(そもそもこの類推が間違いかもしれませんが)
もっと桁数多く演算してるような



Y_repeat

リンク

2017/4/5(Wed) 17:44:05|NO.78934

お疲れさまです


#define boost-fixedLevel 4
asの方を書き換えたら動作しました


c=boost_fixedpoint(c)
3.5B(ブログからDLっするやつ)でもerrorでした

自分のOSが古いのもあるかもしれません
win7PROでやってるので
でもdll使用GAMEとかで使ってもらえる人
win7いるかもしれないし



Velgail

リンク

2017/4/5(Wed) 23:49:18|NO.78941

そうですね。私の環境はWindows10なので、Windows7の互換性確認は原則として出来ません
(いや、ライセンス違反でゴリ押せば(;y=ー( ゚д゚)・∵. ターン

まあ、それ以上の難題にぶつかっているので…… まだまだ



Y_repeat

リンク

2017/4/6(Thu) 01:59:05|NO.78963

自分の環境だと全般的に1桁しか動かないようです

#define boost-fixedLevel 4 #include "Boost-FixedPoint.as" a=boost_fixedpoint(1.236) b=boost_fixedpoint(1) mes a mes b h=boost_fixedpoint(0.0) h+=boost_fixedpoint(1.0) h+=boost_fixedpoint(0.456) mes h i=boost_fixedpoint(0.0) i+=boost_fixedpoint(123.0) i+=boost_fixedpoint(0.456) ; mes i



Y_repeat

リンク

2017/4/10(Mon) 05:10:12|NO.79057

おはこんばんわ
他の要望だと
アクセサメソッドとか欲しいっすね
割と簡単に実装出来そうな出来なそうなw

後は
変数とか命令とかで
一文字違いのソレを検索したいですね
タイポのほとんどは一文字打ち間違いとか
言うような言わないような。なので
これはHSPに実装されないでも
ツールとかで実現出来そうな出来なそうなw



Velgail

リンク

2017/4/11(Tue) 22:51:29|NO.79084

今週札幌と東京を2往復していて時間なんて無いですが、ちょっと書いておきたい

>アクセサメソッド
どのオブジェクトの?

>一文字違い
文字列距離という言葉で検索すれば結構簡単に出てくるはず。

以上、簡単にまとめておきます。明日は朝イチの特急+新幹線で東京だ(飛行機より安かったのでw)



Y_repeat

リンク

2017/4/12(Wed) 12:07:15|NO.79088

>>アクセサメソッド
>どのオブジェクトの?
HSPのモジュール変数のですね
Rubyとかだと簡単にメンバのアクセサメソッド定義できますよね

>>一文字違い
>文字列距離という言葉で検索すれば結構簡単に出てくるはず。
なるほどひっかかりました
完成せずとも途中まででも自力でやってみますw



Y_repeat

リンク

2017/4/14(Fri) 00:57:43|NO.79097

整数部分をlongintで処理出来ないか?とやってたら


#include "boost-longint.as" after_mul=boost_longint(1) repeat 100 after_mul*=10 logmes ""+after_mul await 1 loop
こういうのでも誤作動起きますw



Y_repeat

リンク

2017/4/15(Sat) 02:39:28|NO.79107

boost-longintがまだ不安定なようでlongintは再配布可か不明なので
なくても出来るdouble拡張書いてみました

http://zuzazann.boy.jp/media_wiki_120/index.php?title=Plus_double_module_ver0.1



Y_repeat

リンク

2017/5/11(Thu) 21:48:25|NO.79685

こんばんわ 今年の目標はドラゴンブックの読破のY_repeatです
読み始めて4か月ちょいで360Pくらいです
全部で1000ページくらいなので順調です
後半数章難易度高い最適化の章らしく まずはそこ飛ばして。と考えているので
割と楽なかんじです

で、最近ちょっとづつ 中間言語作成意欲が復活しました
いやいや中間言語じゃなく構文木形式の簡単な処理系を書く予定です
構文木を書くのはHSPじゃ辛そうなのでCで書くことにしました
tkやyaccなどの連携も考えた上で決めました
そのうち覆るかもしれませんがw

pythonは人工知能のライブラリが充実してるらしく
そっちもそそられてますw

そこで例えば
HSPで人工知能をいじるとしたらどんなかんじなのでしょうか
Cで人工知能をいじるとしたらどんなかんじなのでしょうか
今後の事を考えると 人工知能は踏まえておいた方がいいと思いまして

このスレッド過疎気味ですが
自分、実装することも前提に入れて書いてるので
ひじょうに簡単な記述しかしてないんですよね
今後どうなるやらw



ONION software Copyright 1997-2021(c) All rights reserved.