[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

# 32. Runtime Environment

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## 32.1 Introduction for Runtime Environment

`maxima-init.mac`は、 Maximaがスタートする時自動的にロードされるファイルです。 自分の Maxima環境をカスタマイズするために `maxima-init.mac`を使うことができます。 `maxima-init.mac`は、もし存在するなら、 関数 `file_search`が検索する任意のディレクトリで大丈夫ですが、 通常は `maxima_userdir`で名付けられたディレクトリの中に置かれます。

以下は `maxima-init.mac`ファイルの例です:

    setup_autoload ("specfun.mac", ultraspherical, assoc_legendre_p);
    showtime:all;

この例では、 `setup_autoload`はMaximaに もし関数 (`ultraspherical`, `assoc_legendre_p`)のいずれかがコールされた時まだ定義されていなかったら、 指定されたファイル (`specfun.mac`)をロードするように命じます。 このように関数をコールする前にファイルをロードすることを覚えておく必要はありません。

文 `showtime: all`は Maximaに `showtime`変数を設定することを命じます。 `maxima-init.mac`ファイルは他の任意の割り当てや Maxima文を含むことができます。

Categories: Session management

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## 32.2 Interrupts

ユーザーは、時間のかかる計算を ^C (control-C)文字で止めることができます。 デフォルトの動作は、計算を止めて、別のユーザープロンプトを印字することでです。 この場合、止められた計算の再開することはできません。

もし

    :lisp (setq *debugger-hook* nil)

を実行することによって、 Lisp変数`*debugger-hook*`が`nil`に設定されているなら、 ^Cを受け取ると、Maximaは Lispデバッガに入り、 ユーザーは Lisp環境を検査するためにデバッガを使うことができます。 止められた計算は Lispデバッガの中で、 `continue`を入力することで、再開することができます。 (計算を完了まで走らせる以外に) Lispデバッガから Maximaに戻る方法は Lispのバージョンそれぞれで異なります。

Unixシステム上では、 文字^Z (control-Z)は Maximaが完全に止まるようにし、 制御はシェルスクリプトに戻ります。 `fg`コマンドが Maximaが止められた点から再開するようにします。

Categories: Console interaction

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## 32.3 Functions and Variables for Runtime Environment

システム変数: maxima_tempdir

  `maxima_tempdir`は Maximaが一時的なファイルを生成するディレクトリを指名します。 特に、プロットのための一時ファイルが `maxima_tempdir`に生成されます。

  `maxima_tempdir`の初期値は、 もし Maximaが置くことができるならユーザーのホームディレクトリです; そうでないなら、Maximaは適切なディレクトリについて推量します。

  `maxima_tempdir`はディレクトリを指名する文字列に割り当てられます。

  Categories: Global variables

システム変数: maxima_userdir

  `maxima_userdir`は、 Maximaが Maximaや Lispファイルを見つけるために検索するディレクトリを指名します。 (Maximaは他のディレクトリも検索します; `file_search_maxima`と `file_search_lisp`が完全なリストです。)

  `maxima_userdir`の初期値は、 もし　Maximaが置くことができなら ユーザーのホームディレクトリのサブディレクトリです; そうでないなら Maximaは適切なディレクトリについて推量します。

  `maxima_userdir`はディレクトリを指名する文字列に割り当てられます。 しかしながら、 `maxima_userdir`への割り当ては、自動的には `file_search_maxima`と `file_search_lisp`を変えません; それらの変数は別々に変更しなければいけません。

  Categories: Global variables

関数: room
`room` ()
`room` (true)
`room` (false)

  Maximaの記憶装置とスタックマネージメントの状態の描写を印字します。 `room`は同じ名前の Lisp関数をコールします。

  - `room ()`は適度の描写を印字します。
  - `room (true)`は言葉数の多い描写を印字します。
  - `room (false)`は簡潔な描写を印字します。

  Categories: Debugging

関数: sstatus (keyword, item)

  keywordがシンボル `feature`の時、 itemがシステムフィーチャのリスト上に追加されます。 `sstatus (keyword, item)`が実行された後、 `status (feature, item)`は `true`を返します。 もし keywordがシンボル `nofeature`なら、 itemはシステムフィーチャのリストから削除されます。 これはパッケージ作者が、搭載したフィーチャの追跡をするのに役に立つかもしれません。

  `status`も参照してください。

  Categories: Programming

関数: status
`status` (`feature`)
`status` (`feature`, item)

  いくつかのシステム依存のフィーチャの存在と不在についての情報を返す。

  - `status (feature)`はシステムフィーチャのリストを返します。 これらは Lispのバージョン、オペレーティングシステムのタイプなどを含みます。 リストは１つの Lispタイプからもう１つに変わるかもしれません。
  - `status (feature, item)`は、 もし itemが `status (feature)`が返す項目のリスト上にあるなら、 `true`を返し、そうでないなら `false`を返します。 `status`は引数 itemをクォートします。 クォート-クォート演算子 `''`はクォーテーションに優先されます。 名前がハイフンのように特殊文字を含むフィーチャは、 文字列引数として与えられなければいけません。例えば、 `status (feature, "ansi-cl")`。

  `sstatus`も参照してください。

  変数 `features`は数式に適用されるフィーチャのリストを含みます。 もっと情報を知るには、 `features`と `featurep`を参照してください。

  Categories: Programming

関数: system (command)

  別のプロセスとして commandを実行します。 コマンドは実行のためデフォルトのシェルに渡されます。 `system`はオペレーティングシステムすべてではサポートされませんが、 一般に Unixと Unixライクな環境では存在します。

  `_hist.out`は、 `xgraph`を使ってバーグラフとしてプロットしたい頻度のリストだと仮定します。

      (%i1) (with_stdout("_hist.out",
                 for i:1 thru length(hist) do (
                   print(i,hist[i]))),
             system("xgraph -bar -brw .7 -nl < _hist.out"));

  プロットをバックグラウンドで（ Maximaに制御を戻すように）させるようにし、 終了した後、一次ファルを削除するようにするためには以下のようにします:

      system("(xgraph -bar -brw .7 -nl < _hist.out;  rm -f _hist.out)&")

関数: time (%o1, %o2, %o3, …)

  出力行 `%o1`, `%o2`, `%o3`, …を計算するために使った時間のリストを秒で返します。 返された時間は内部計算時間の Maximaの概算であって、経過時間ではありません。 `time`は出力行変数にだけ適用されます; 他の変数に関して `time`は `unknown`を返します。

  Maximaに出力行それぞれに計算時間と経過時間を印字させるには、 `showtime: true`を設定してください。

  Categories: Debugging

関数: timedate
`timedate` ()
`timedate` (T)

  引数なしの `timedate()`は現在時刻と日付を表す文字列を返します。 文字列は、フォーマット `YYYY-MM-DD HH:MM:SS[+|-]ZZ:ZZ`を持ちます。 ここで、欄は、年、月、日、時、分、秒、時間と分のタイムゾーンオフセットです。

  `timedate(T)`はフォーマット `YYYY-MM-DD HH:MM:SS[+|-]ZZ:ZZ`の文字列として時刻 Tを返します。 Tは `absolute_real_time`が返すような 1990年1月1日の真夜中以来の秒数として解釈されます。

  例:

  引数なしの `timedate()`は現在時刻と日付を表す文字列を返します。

      (%i1) d : timedate ();
      (%o1)                      2010-06-08 04:08:09+01:00
      (%i2) print ("timedate reports current time", d) $
      timedate reports current time 2010-06-08 04:08:09+01:00

  引数ありの `timedate`は引数を表す文字列を返します。

      (%i1) timedate (0);
      (%o1)                      1900-01-01 01:00:00+01:00
      (%i2) timedate (absolute_real_time () - 7*24*3600);
      (%o2)                      2010-06-01 04:19:51+01:00

  Categories: Time and date functions

関数: parse_timedate
`parse_timedate` (S)

  日付や日時を表す文字列 Sをパースし、GMT 1900年1月1日零時からの秒数を返します。 もしゼロでないミリ秒部分があれば戻り値は有理数で、そうでなければ整数です。

  文字列 Sは以下のフォーマットのいずれかでなければいけません:

  - `YYYY-MM-DD[ T]hh:mm:ss[,.]nnn`
  - `YYYY-MM-DD[ T]hh:mm:ss`
  - `YYYY-MM-DD`

  ここで、フィールドは年、月、日、時、分、秒、ミリ秒で、 カギ括弧は可能な代替文字を示します。

  `timedate`と `absolute_real_time`も参照してください。

  例:

  可能なフォーマットそれぞれでのローカルタイムゾーンでの 1900年1月1日零時。

      (%i1) parse_timedate ("1900-01-01 00:00:00,000");
      (%o1)                         28800
      (%i2) parse_timedate ("1900-01-01 00:00:00.000");
      (%o2)                         28800
      (%i3) parse_timedate ("1900-01-01T00:00:00,000");
      (%o3)                         28800
      (%i4) parse_timedate ("1900-01-01T00:00:00.000");
      (%o4)                         28800
      (%i5) parse_timedate ("1900-01-01 00:00:00");
      (%o5)                         28800
      (%i6) parse_timedate ("1900-01-01T00:00:00");
      (%o6)                         28800
      (%i7) parse_timedate ("1900-01-01");
      (%o7)                         28800

  Categories: Time and date functions

関数: absolute_real_time ()

  協定世界時で1900年1月1日の深夜以来の秒数を返します。 戻り値は整数です。

  `elapsed_real_time`と `elapsed_run_time`も参照してください。

  例:

      (%i1) absolute_real_time ();
      (%o1)                      3385045277
      (%i2) 1900 + absolute_real_time () / (365.25 * 24 * 3600);
      (%o2)                   2007.265612087104

  Categories: Time and date functions

関数: elapsed_real_time ()

  Maximaがもっとも最近スタートしたか再スタートして以来の (1秒の小数を含む)秒数を返します。 戻り値は浮動小数点数です。

  `absolute_real_time`と `elapsed_run_time`も参照してください。

  例:

      (%i1) elapsed_real_time ();
      (%o1)                       2.559324
      (%i2) expand ((a + b)^500)$
      (%i3) elapsed_real_time ();
      (%o3)                       7.552087

  Categories: Time and date functions

関数: elapsed_run_time ()

  Maximaがもっとも最近スタートしたか再スタートして以来 Maximaが計算に費やした(1秒の小数を含む)秒数の概算を返します。 戻り値は浮動小数点数です。

  `absolute_real_time`と `elapsed_real_time`も参照してください。

  例:

      (%i1) elapsed_run_time ();
      (%o1)                         0.04
      (%i2) expand ((a + b)^500)$
      (%i3) elapsed_run_time ();
      (%o3)                         1.26

  Categories: Time and date functions

[ << ] | [ >> ] |  |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

This document was generated by 市川雄二 on June, 21 2016 using texi2html 1.76.