next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Macaulay2Doc > how Macaulay2 finds its files > currentLayout

currentLayout -- relative locations of Macaulay2 files


Macaulay2 comes with a variety of types of files, and some of them are associated with a particular Macaulay2 package. The hash table currentLayout is a translation table from names, corresponding to the various types of files, to directory paths. The directory paths are to be interpreted relative to the path stored in prefixDirectory. Each of the directories contained in the list prefixPath has its own layout, which will be detected at runtime. Some of the strings contain PKG as a substring, which should be replaced by the name of package whose files will be stored in that directory.

The hash table Layout contains the two possible values for currentLayout; corresponding to the two possible values for the installPackage(...,SeparateExec=>...) option used with installPackage. The hash table Layout#2 is used if architecture dependent files are to be stored in a directory tree separate from the one used for architecture independent files. The hash table Layout#1 is used otherwise.

Basic Macaulay2 files are regarded as being associated with a special package called Core, and the corresponding documentation files are part of the package Macaulay2Doc.

i1 : Layout

o1 = HashTable{1 => HashTable{bin => bin/                                                    }               }
                              common => 
                              data => share/
                              doc => share/doc/Macaulay2/
                              docdir => share/doc/Macaulay2/
                              emacs => share/emacs/site-lisp/Macaulay2/
                              exec => 
                              factory gftables => share/Macaulay2/Core/factory/
                              info => share/info/
                              lib => lib/
                              libraries => lib/Macaulay2/lib/
                              man => share/man/
                              package => share/Macaulay2/PKG/
                              packagecache => lib/Macaulay2/PKG/cache/
                              packagedoc => share/doc/Macaulay2/PKG/
                              packageexampleoutput => share/doc/Macaulay2/PKG/example-output/
                              packagehtml => share/doc/Macaulay2/PKG/html/
                              packageimages => share/doc/Macaulay2/PKG/images/
                              packagelib => lib/Macaulay2/PKG/
                              packages => share/Macaulay2/
                              packagetests => share/doc/Macaulay2/PKG/tests/
                              program licenses => libexec/Macaulay2/program-licenses/
                              programs => libexec/Macaulay2/bin/
               2 => HashTable{bin => x86_64-Linux-ArchLinux/bin/                                            }
                              common => common/
                              data => common/share/
                              doc => common/share/doc/Macaulay2/
                              docdir => common/share/doc/Macaulay2/
                              emacs => common/share/emacs/site-lisp/Macaulay2/
                              exec => x86_64-Linux-ArchLinux/
                              factory gftables => common/share/Macaulay2/Core/factory/
                              info => common/share/info/
                              lib => x86_64-Linux-ArchLinux/lib/
                              libraries => x86_64-Linux-ArchLinux/lib/Macaulay2/lib/
                              man => common/share/man/
                              package => common/share/Macaulay2/PKG/
                              packagecache => x86_64-Linux-ArchLinux/lib/Macaulay2/PKG/cache/
                              packagedoc => common/share/doc/Macaulay2/PKG/
                              packageexampleoutput => common/share/doc/Macaulay2/PKG/example-output/
                              packagehtml => common/share/doc/Macaulay2/PKG/html/
                              packageimages => common/share/doc/Macaulay2/PKG/images/
                              packagelib => x86_64-Linux-ArchLinux/lib/Macaulay2/PKG/
                              packages => common/share/Macaulay2/
                              packagetests => common/share/doc/Macaulay2/PKG/tests/
                              program licenses => x86_64-Linux-ArchLinux/libexec/Macaulay2/program-licenses/
                              programs => x86_64-Linux-ArchLinux/libexec/Macaulay2/bin/

o1 : HashTable
Here are the meanings of the keys used in currentLayout.

See also

For the programmer

The object currentLayout is a hash table.