Normative summaries (v0.1)¶
- Status:
Draft v0.1
Short normative checklists for implementers. For full rules, see FMF v0.1 specification and FMFL v0.1 specification.
FMF v0.1 (concise)¶
A library is a directory containing
libraryDescription.xmlwithfmfVersion="0.1",name,version, and anelementslist referencing eachelementDescription.xml.Default layout:
components/<ElementId>/elementDescription.xml, optionalbehavior/*.fmfl, optional triple SVG iconsresources/icons/<stem>_16.svg,_32,_64.Preferred icon: when only one file is used, ``*_16.svg``; standard library (
std) arithmetic SHALL use that preference.Host references:
<LibName>.<ElementId>; librarynamestd MAY be omitted (Add≡std.Add). Reserved namestd; see FMF v0.1 specification, C.1.1.Behavior:
<Behavior>SHALL contain<FMFL file="..."/>(optionalprofile); legacy<Source fmfl="..."/>is deprecated.Each element declares
id,name,Ports(in/out), optionalParameters, Behavior → FMFL, optionalGraphics(icon16/icon32/icon64; listicon16first).
FMFL v0.1 (concise)¶
Phases: init (once, initial values, no side effects in v0.1) and equations (each step, pure).
Textual IR:
fmfl 0.1, Python-likeinit:/equations:indented suites — notrun:(non-conforming; optional legacy alias).Determinism: order = source order; unread numerics = 0; algebraic loops allowed (author responsibility).
Names: input ports, output ports, local temporaries, parameters (constant); state reserved for v0.2+.
Types: semantic Real, Int, Bool in the model; concrete storage via type / target profiles at codegen.
Standard library SHALL include Add, Sub, Mul, Div (see FMFL v0.1 specification, section E).