- A file which is loaded automatically for you when you start up
a MACSYMA, to customize MACSYMA for you. It is possible to have an
init file written as a BATCH file of macsyma commands. We hope this
makes it easier for users to customize their macsyma environment.
Here is an example init file
The strange looking comment at the top of the file "/*-*-macsyma-*-*/"
tells that it is a macsyma-language file.
Also: "SETUP_AUTOLOAD" can be used to make functions in BATCH files
autoloading, meaning that you can then use (for instance, here) the
functions J0, J1 and Jn from the BESSEL package directly because when
you use the function the BESSEL package will be loaded in for you
automatically. If the second file name in the argument to
SETUP_AUTOLOAD is not specified (the preferred usage) then the
standard search for second file names of "FASL", "TRLISP", and ">" is
done.
- There are several ways the user can interrupt a MACSYMA computation,
usually with a control character. Do DESCRIBE(CHARACTERS); for details.
MACSYMA will also be interrupted if ^Z (control-Z) is typed, as this
will exit back to Unix shell level Usually Control-C interrupts the
computation putting you in a break loop. Typing :t should give you top
level maxima back again.
will execute the function of no
arguments whose name is arg3 when the time specified by arg1 and arg2
elapses. If arg1 is the atom "TIME" then arg3 will be executed after
arg2 seconds of real-time has elapsed while if arg1 is the atom
"RUNTIME" then arg3 will be executed after arg2 milliseconds of cpu
time. If arg2 is negative then the arg1 timer is shut off.
Function:ALLOC
takes any number of arguments which are the same as the replies
to the "run out of space" question. It increases allocations
accordingly. E.g. If the user knows initially that his problem will
require much space, he can say ALLOC(4); to allocate the maximum
amount initially. See also the DYNAMALLOC switch.
Function:BUG("message")
similar to mail, sends a message to MACSYMA Mail.
This may be used for reporting bugs or suspected bugs in MACSYMA.
Expressions may be included by referring to them, outside double
quotes, e.g.
BUG("I am trying to integrate",D3,"but it asks for more list space.
What should I do?");
Function:CLEARSCREEN()
Clears the screen. The same as typing control-L.
Function:CONTINUE
- Control-^ typed while in MACSYMA causes LISP to be
entered. The user can now type any LISP S-expression and have it
evaluated. Typing (CONTINUE) or ^G (control-G) causes MACSYMA to be
re-entered.
Function:DDT()
Exits from MACSYMA to the operating system level. (The same
as control-Z on ITS, or control-C on Tops-20.)
Function:DELFILE(file-specification)
will delete the file given by the
file-specification (i.e. firstname, secondname, device, user) from the
given device.
Function:DISKFREE()
With no args or an arg of TRUE, will return the total
number of free blocks of disk space in the system. With an arg of 0,
1, or 13, it will return the number of free blocks of diskspace on the
respective disk pack. With an arg of SECONDARY or PRIMARY, it will
return the total number of free blocks of disk space on the secondary
or primary disk pack respectively.
declaration:FEATURE
- A nice adjunct to the system. STATUS(FEATURE) gives you a
list of system features. At present the list for MC is: MACSYMA,
NOLDMSG, MACLISP, PDP10, BIGNUM, FASLOAD, HUNK, FUNARG, ROMAN, NEWIO,
SFA, PAGING, MC, and ITS. Any of these "features" may be given as a
second argument to STATUS(FEATURE,...); If the specified feature
exists, TRUE will be returned, else FALSE. Note: these are system
features, and not really "user related". See also DESCRIBE(features);
for more user-oriented features.
Function:FEATUREP(a,f)
attempts to determine whether the object a has the
feature f on the basis of the facts in the current data base. If so,
it returns TRUE, else FALSE. See DESCRIBE(FEATURES); .
types out a verbose description of the state of storage and
stack management in the Macsyma. This simply utilizes the Lisp
ROOM function.
ROOM(FALSE) - types out a very terse description, containing most of
the same information.
Function:STATUS(arg)
will return miscellaneous status information about the
user's MACSYMA depending upon the arg given. Permissible arguments
and results are as follows:
TIME - the time used so far in the computation.
DAY - the day of the week.
DATE - a list of the year, month, and day.
DAYTIME - a list of the hour, minute, and second.
RUNTIME - accumulated cpu time times the atom "MILLISECONDS" in the current
MACSYMA.
REALTIME - the real time (in sec) elapsed since the user started up
his MACSYMA.
GCTIME - the garbage collection time used so far in the current
computation.
TOTALGCTIME - gives the total garbage collection time used in MACSYMA
so far.
FREECORE - the number of blocks of core your MACSYMA can expand
before it runs out of address space. (A block is 1024 words.)
Subtracting that value from 250*BLOCKS (the maximum you can get on MC)
tells you how many blocks of core your MACSYMA is using up. (A
MACSYMA with no "fix" file starts at approx. 191 blocks.)
FEATURE - gives you a list of system features. At present the list for
MC is: MACSYMA, NOLDMSG, MACLISP, PDP10, BIGNUM, FASLOAD, HUNK,
FUNARG, ROMAN, NEWIO, SFA, PAGING, MC, and ITS. Any of these
"features" may be given as a second argument to STATUS(FEATURE,...);
If the specified feature exists, TRUE will be returned, else FALSE.
Note: these are system features, and not really "user related".
For information about your files, see the FILEDEFAULTS(); command.
Function:TIME(Di1, Di2, ...)
gives a list of the times in milliseconds taken
to compute the Di. (Note: the Variable SHOWTIME, default: [FALSE],
may be set to TRUE to have computation times printed out with each
D-line.)