[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Índice] | [ ? ]

# 34. Ambiente em Tempo de Execução

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Índice] | [ ? ]

## 34.1 Introdução a Ambiente em Tempo de Execução

`maxima-init.mac` é um arquivo que é chamado automaticamente quando o Maxima inicia. Você pode usar `maxima-init.mac` para personalizar seu ambiente Maxima. `maxima-init.mac`, se existir, é tipicamente colocado no diretório chamado por `maxima_userdir`, embora possa estar em qualquer outro diretório procurado pela função `file_search`.

Aqui está um exemplo do arquivo `maxima-init.mac`:

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

Nesse Exemplo, `setup_autoload` diz ao Maxima para chamar o arquivo especificado (`specfun.mac`) se qualquer das funções (`ultraspherical`, `assoc_legendre_p`) forem chamadas sem estarem definidas. Dessa forma você não precisa lembrar de chamar o arquivo antes das funções.

A declaração `showtime: all` diz ao Maxima escolher a variável `showtime`. O arquivo `maxima-init.mac` pode conter qualquer outras atribuições ou outras declarações do Maxima.

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Índice] | [ ? ]

## 34.2 Interrupções

O usuário pode parar uma computação que consome muito tempo com o caractere ^C (control-C). A ação padrão é parar a computação e mostrar outra linha de comando do usuário. Nesse caso, não é possível continuar a computação interrompida.

Se a variável Lisp `*debugger-hook*` é escolhida para `nil`, através do comando

    :lisp (setq *debugger-hook* nil)

então na ocasião do recebimento do ^C, Maxima iniciará o depurador Lisp, e o usuário pode usar o depurador para inspecionar o ambiente Lisp. A computação interrompida pode ser retomada através do comando `continue` no depurador Lisp. O método de retorno para ao Maxima partindo do depurador Lisp (outro como executando a computação para complementação) é diferente para cada versão do Lisp.

Em sistemas Unix, o caratere ^Z (control-Z) faz com que Maxima pare tudo e aguarde em segundo plano, e o controle é retornado para a linha de comando do shell. O comando `fg` faz com que o Maxima retorne ao primeiro plano e continue a partir do ponto no qual foi interrompido.

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Índice] | [ ? ]

## 34.3 Funções e Variáveis Definidas para Ambiente em Tempo de Execução

Declaração: feature

  Maxima compreende dois tipos distintos de recurso, recursos do sistema e recursos aplicados a expressões matemáticas. Veja Também `status` para informações sobre recursos do sistema. Veja Também `features` e `featurep` para informações sobre recursos matemáticos.

  `feature` por si mesmo não é o nome de uma função ou variável.

Função: featurep (a, f)

  Tenta determinar se o objeto a tem o recurso f na base dos fatos dentro base de dados corrente. Se possue, é retornado `true`, de outra forma é retornado `false`.

  Note que `featurep` retorna `false` quando nem f nem a negação de f puderem ser estabelecidas.

  `featurep` avalia seus argumentos.

  Veja também `declare` e `features`.

      (%i1) declare (j, even)$
      (%i2) featurep (j, integer);
      (%o2)                           true

Variável de sistema: maxima_tempdir

  `maxima_tempdir` nomeia o diretório no qual Maxima cria alguns arquivos temporários. Em particular, arquivos temporários para impressão são criados no `maxima_tempdir`.

  O valor inicial de `maxima_tempdir` é o diretório do usuário, se o maxima puder localizá-lo; de outra forma Maxima supõe um diretório adequado.

  A `maxima_tempdir` pode ser atribuído uma seqüência de caracteres que corresponde a um diretório.

Variável de sistema: maxima_userdir

  `maxima_userdir` nomeia um diretório no qual Maxima espera encontrar seus próprios arquivos e os do arquivos do Lisp. (Maxima procura em alguns outros diretórios também; `file_search_maxima` e `file_search_lisp` possuem a lista completa.)

  O valor inicial de `maxima_userdir` é um subdiretório do diretório do usuário, se Maxima puder localizá-lo; de outra forma Maxima supõe um diretório adequado.

  A `maxima_userdir` pode ser atribuído uma seqüência de caracteres que corresponde a um diretório. Todavia, fazendo uma atribuição a `maxima_userdir` não muda automaticamente o valor de `file_search_maxima` e de `file_search_lisp`; Essas variáveis devem ser modificadas separadamente.

Função: room ()
Função: room (true)
Função: room (false)

  Mostra uma descrição do estado de armazenamento e gerenciamento de pilha no Maxima. `room` chama a função Lisp de mesmo nome.

  - `room ()` mostra uma descrição moderada.
  - `room (true)` mostra uma descrição detalhada.
  - `room (false)` mostra uma descrição resumida.

Função: status (feature)
Função: status (feature, recurso_ativo)
Função: status (status)

  Retorna informações sobre a presença ou ausência de certos recursos dependentes do sistema operacional.

  - `status (feature)` retorna uma lista dos recursos do sistema. Inclui a versão do Lisp, tipo de sistema operacional, etc. A lista pode variar de um tipo de Lisp para outro.
  - `status (feature, recurso_ativo)` retorna `true` se recurso_ativo está na lista de ítens retornada através de `status (feature)` e `false` de outra forma. `status` não avalia o argumento recurso_ativo. O operador apóstrofo-apóstrofo, `''`, evita a avaliação. Um recurso cujo nome contém um caractere especial, tal como um hífem, deve ser fornecido como um argumento em forma de seqüência de caracteres. Por Exemplo, `status (feature, "ansi-cl")`.
  - `status (status)` retorna uma lista de dois elementos `[feature, status]`. `feature` e `status` são dois argumentos aceitos pela função `status`; Não está claro se essa lista tem significância adicional.

  A variável `features` contém uma lista de recursos que se aplicam a expressões matemáticas. Veja `features` e `featurep` para maiores informações.

Função: time (%o1, %o2, %o3, ...)

  Retorna uma lista de tempos, em segundos, usados para calcular as linhas de saída `%o1`, `%o2`, `%o3`, .... O tempo retornado é uma estimativa do Maxima do tempo interno de computação, não do tempo decorrido. `time` pode somente ser aplicado a variáveis(rótulos) de saída de linha; para quaisquer outras variáveis, `time` retorna `unknown` (tempo desconhecido).

  Escolha `showtime: true` para fazer com que Maxima moste o tempo de computação e o tempo decorrido a cada linha de saída.

Função: timedate ()

  Retorna uma seqüência de caracteres representando a data e hora atuais. A seqüência de caracteres tem o formato `HH:MM:SS Dia, mm/dd/aaaa (GMT-n)`, Onde os campos são horas, minutos, segundos, dia da semana, mês, dia do mês, ano, e horas que diferem da hora GMT.

  O valor de retorno é uma seqüência de caracteres Lisp.

  Exemplo:

      (%i1) d: timedate ();
      (%o1) 08:05:09 Wed, 11/02/2005 (GMT-7)
      (%i2) print ("timedate mostra o tempo atual", d)$
      timedate reports current time 08:05:09 Wed, 11/02/2005 (GMT-7)

Função: absolute_real_time ()

  Retorna o número de segundos desde a meia noite do dia primeiro de janeiro de 1900 (UTC). O valor de retorno é um inteiro.

  Veja também `elapsed_real_time` e `elapsed_run_time`.

  Exemplo:

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

Função: elapsed_real_time ()

  Retorna o n;umero de segundos (incluindo frações de segundo) desde que Maxima tenha sido recentemente iniciado ou reiniciado. O valor de retorno é um número em ponto flutuante.

  Veja também `absolute_real_time` e `elapsed_run_time`.

  Exemplo:

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

Função: elapsed_run_time ()

  Retorna uma estimativa do número de segundos (incluindo frações de segundo) que o Maxima gastou em computações desde que Maxima tenha sido recentemente iniciado ou reiniciado. O valor de retorno é um número em ponto flutuante.

  Veja também `absolute_real_time` e `elapsed_real_time`.

  Exemplo:

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

[ << ] | [ >> ] |  |  |  |  |  | [Top] | [Contents] | [Índice] | [ ? ]

This document was generated by Viktor T. Toth on Setembro, 27 2018 using texi2html 1.76.