summaryrefslogtreecommitdiff
path: root/doc/muse.1
blob: c96a59912d69ee01399720ab16a599fa2d9e7eb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
.TH MUSE 1
.SH NAME
muse
.SH SYNOPSIS
.B muse
.I -[hmidos]
.I [file...]
.br
.SH DESCRIPTION
.PP
The 'muse' tool takes as input a Myrddin source file and generates
a usefile from it. A usefile collects definitions exported from the
package specifications in Myrddin source code, and makes them available
for other programs to include with a 'use' statement.
.PP
It can also merge together a number of usefiles into one larger usefile
including all of the exported symbols. If an output file name is not given,
and we are not merging usefiles, then an input file named
.I filename.myr
will generate a usefile named
.I filename.use
\&.

If the filename does not end with the suffix
.I .myr
then the suffix
.I .o
will simply be appended to it.

.PP
The output of muse is architecture-independent. However, the format of the
generated file is not stable, and is not guaranteed to work across
different compiler versions.

.PP
The muse options are:

.TP
.B -d [flTri]
Print debugging dumps. Additional options may be given to give more
debugging information for specific intermediate states of the compilation.

.TP
.B -h
Print a summary of the available options.

.TP
.B -I path
Add 'path' to the search path for unquoted use statments. This option
does not affect the search path for local usefiles, which are always
searched relative to the compiler's current working directory. Without
any options, the search path defaults to /usr/include/myr.

.TP
.B -o output-file
Specify that the generated usefile should be named 
.I output-file

.TP
.B -s
Print a summary of the symbols exported from the usefile that is specified.

.SH EXAMPLE
.EX
    muse foo.myr
    muse -o bar.use bar-system-version.myr
    muse -mo library foo.use bar.use
.EE

.SH FILES
The source for muse is available from
.B git://git.eigenstate.org/git/ori/mc2.git
and lives in the
.I util/ 
directory within the source tree.

.SH SEE ALSO
.IR mc(1)
.IR ld(1)
.IR as(1)

.SH BUGS
.PP
There is insufficient checking and validation done on usefiles.
.PP
The file format is in flux, and in current iterations, it is not at all compact.
.PP
There is no versioning on the usefiles as it stands. If you use the wrong
version with the wrong compiler, a mysterious error or even segfault is
likely.
.PP
This utility should not exist. Instead, the compiler should put the
exported symbol information into the object file or library directly.
.PP
The file format is not closed under concatentation.