トップ «前の日記(16-November-2014) 最新 次の日記(18-November-2014)» 編集

つれづれなるままに

これまでの訪問者人
本日の訪問者人  昨日の訪問者人
月齢14.1

AI | AIきりたん | Ast | Beat Saber | CeVIO | Cn | cover | de | Emacs | En | Es | fr | git | html | iPad | It | Just Dance | misc | MMD | MV | NEUTRINO | OVA | PC | PV | Ru | SF | SKK | stable diffusion | SynthesizerV | tDiary | Th | Vocaloid | VRC | VRChat MMD | Vsinger | Vtuber | was | YuNi | お茶 | アニメ | アメリカ | イラスト | オカリナ | カゲプロ | キズナアイ | テレビ | ノベル | ノーベル賞 | ビートセイバー | フィートセイバー | フランス | ラズパイ | ラノベ | 万葉語 | 世界 | 中国 | 予定 | 即売会 | 台湾 | 台風 | 合成してみた | 同人 | 地震 | 宇宙 | 家電 | 展示 | 描いてみた | 政治 | 旅行 | 日記 | 映画 | 時事 | 書道 | 歌ってみた | 歴史 | 海外 | 演奏してみた | 漫画 | 特撮 | 科学 | 英国 | 訃報 | 語学 | 踊ってみた | 陶笛 | 障害 | 音楽 | 飲み |

17-November-2014 えーと、特には [長年日記]

_ [PC] gfortran における -save オプション相当のもの

Fortranは古い言語なので、元々の仕様として変数を動的に割り当てることなくメモリー上に固定したエリアを確保していました。

どういうことかというと、今の動的にメモリーを確保する言語ならサブルーチンに処理を渡したときに、次に呼ばれたときにはそのサブルーチン内の変数は初期化されています。(初期化もしくは不定値ですね。)

ところが、元々のFortranではサブルーチンの変数の値がメモリー上に残るので、例えばサブルーチンが呼ばれるたびにローカル変数をインクリメントしたりすることができるし、古いライブラリーではそのような実装になっているものが結構あったりします。

Fortranの恩恵のひとつが、こういった過去のライブラリーを流用できることなのですが。。

実際のところは、もう何十年も前からデフォルトでは変数の静的割り当ては行われなくなっています。この機能を使うときにはコンパイル時にオプションを指定する必要があります。

まぁ、よくあるパターンが-saveオプションですが、互換性の問題から推奨されるのはオプションによる指定ではなくて、変数をSAVE宣言してやる方がいいんですよね。でも、どの変数が静的に割り当てられているかを識別するのは大変なので、よくまとめて-saveオプションを使ってしまったりするのですね。コードをいじる必要がなくなるので。

で、GCCに含まれているgfortranでどうやったらこの静的割り当てができるかをちょっと前に悩んでたんです。

gfortranでコンパイルした結果が他のコンパイラーでコンパイルした結果による実行結果と有意に違っていたんです。

で、色々と探してみつけたのが -fno-automatic オプションでした。これがいわゆる-saveオプションに相当するみたいですね。

昔だったらcommonで逃げるという手もあったんでしょうが、common自体は推奨されていません。一般にグローバル変数で言われるように、どの時点で変数が書き換えられたかがわかりにくくなるからですね。Fortranではmodule推奨ですが、まだうまく使いこなせないなぁ。

と、話がそれましたが、過去の資産を利用しようとすると、静的割り当てが必要になると。

まぁ、commonをmoduleに単純に置き換えるぐらいだったら、common名をgrepかければ大抵はなんとかなりますけどね。

_ [語学] lang-8

どうにもこのところlang-8への接続が悪いです。

帯域が圧迫されてるのかなぁ?

FirefoxだけじゃなくてIEで試しても見れなかったから、ブラウザ依存ではないっぽいんですが。

ユーザーも増えてきてますしね。

は。

もしかして中国人ユーザーがものすごく増えてきてるので、そのせい?

あ、今はつながりました。

一時的なものか。

_ [同人] サンクリ2015冬

申し込みました。

ギリギリセーフです。

まだ時間があると思っていたら、昨日カレンダー見てぎょっとしました。

それにしても、サークルカットの様式が前回あたりから変わってるんですよね。サイズがやたら小さくなってるんです。

描きにくいので、150%ぐらいで印刷して、それで手書きして、スキャンして、補正してから元の様式に貼りつけてやりました。


【PR】ブログへ記事を投稿して報酬ゲット!アフィリエイトのA8.net