Ambiente em Tempo de Execução (Manual do Maxima 5.49.0)

## 34, Ambiente em Tempo de Execução ¶

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

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

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

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

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

A declaração `showtime: all` diz ao Maxima para activar a opção `showtime`. O ficheiro `maxima-init.mac` pode conter quaisquer outras atribuições ou outras declarações do Maxima.

### 34.2, Interrupções ¶

O utilizador 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 utilizador. Nesse caso, não é possível continuar a computação interrompida.

Se a variável `*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 utilizador 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.

### 34.3, Definições 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 objecto a tem o recurso f na base dos factos 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 directório no qual Maxima cria alguns ficheiros temporários. Em particular, ficheiros temporários para impressão são criados no `maxima_tempdir`.

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

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

Variável de sistema: maxima_userdir ¶

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

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

  A `maxima_userdir` pode ser atribuído uma sequência de caracteres que corresponde a um directó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 sequê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 sequência de caracteres representando a data e hora atuais. A sequê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 sequência de caracteres Lisp.

  Exemplo:

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