Poly/ML RTS Warning and Error Messages

 

<dbase>: Write permission denied.
<dbase>: Opened for reading only.

This warning means that <dbase> could not be opened for writing by Poly/ML, and so PolyML.commit is disabled for this session.

 

Error - Database is not opened for writing.

This warning is issued by PolyML.commit if the database is not writable. This is caused either by using the -r command line flag, or if the database could not be opened for writing.

 

<dbase>: Database name is not a full path name.
<dbase>: Child databases cannot be created.

These warning messages are issued when the database name specified on the command line is not a full path name. Child databases can only be created in a Poly/ML session that uses a full path name to locate the database. This is so that the child database can use the same full path name to locate its parent database in future Poly/ML sessions.

 

Warning - Increasing stack from ... to ... bytes

This warning is produced when the default stack limit of 256Kb is exceeded and Poly/ML needs to increase the size of the stack. This may occur using very deeply recursive ML functions, but it may be because the functions are accidentally infinitely recursive. Since the stack is stored within the heap it cannot grow larger than the heap limit.

 

Run out of store - interrupting console processes

When Poly/ML detects that the heap can no longer be expanded to keep all the current objects and a certain amount of free buffer space, then it attempts to stop the ML processes by raising the exception Interrupt. This will typically stop the current function and return to the Poly/ML prompt.

 

If discgarb crashes the database will be left in an unusable state. ^C disabled until discgarb has finished.

This warning is always produced when running discgarb. It serves as a reminder that discgarb cannot be interrupted. If discgarb crashes, perhaps because the disk is full, then the database will be corrupted and cannot be used.

 

Unable to open <dbase>
Unable to create <dbase>

These error messages mean that either the database could not be found or that insufficient file permissions exist.

 

Stack size too big - reduce your limit

This error message may be produced by Poly/ML when initialising. It needs to allocate address spaces for the heap and all the databases. If the stack address space overlaps any of these it produces this message and Poly/ML will not run. To get Poly/ML to run the stack limit specified by the csh command 'limit' must be reduced to allow more room for database address spaces. Typically a stack limit of 10000 is sufficient.

 

Incompatible CPU type in <dbase>

This error message means that the database CPU type does not match the CPU running the Poly/ML. Since the database contains compiled machine code, it is essential to run the Poly/ML session on the correct type of CPU for the database.

 

<dbase> is too short to be a mapped database
<dbase> is not a mapped database

This error message, means that the file specified to Poly/ML as a database does not have the correct database format. Poly/ML databases contain a 'magic' number for use as a format check.

 

Invalid heap-size value
Invalid immutables-buffer value
Invalid mutables-buffer value
Invalid immutables-percent value
Invalid mutables-percent value
Immutable buffer too large
Mutable buffer too large

The error messages above are issued when the heap size parameters on the command line are either inconsistent or exceed the limits set down in chapter 9.

 

Any one of
Cannot map to address <addr>
mmap failed
mprotect failed

followed by
ENOMEM: Not enough memory

This error message means the virtual memory resources of the machine are exhausted. It is usually caused by trying to run too many concurrent Poly/ML sessions on one machine. Using smaller heap sizes, and not using profiling may get round this problem.

 

No more room for pages

This error message means that the database address space is full and commit cannot find room for any more data. The database will be left unchanged. See section 8.3 for information on the size of database address spaces.

 

Not enough address spaces

This error message is produced when all available database address spaces have been used. It is then no longer possible to create any more child database. See section 8.3 for information on the number of levels of child databases.

 

ftruncate failed
fsync failed on <dbase>
close failed on <dbase>

These error messages means that there was a problem writing data out to the database during a commit, and it may mean that the database is no longer usable. It is usually caused by the filesystem containing the database being full.

Copyright (c) 2000 CUTS and contributers.  Last updated: 15 January 2002 by David Matthews.