genom3 2.99.41 released
Changes¶
- Skeleton template generates codels stubs only for codels directly defined in the input files (skipping codels defined in external interfaces). New options are added to alter this behaviour:
- -x generates stubs for all codels (restore previous behaviour)
- --extern=comp,... generates stubs for codels defined in those named components/interfaces only.
- Add an optional component/interface name argument to the skeleton template. By invoking `skeleton file.gen ... name ...`, the skeleton template will only generate stubs for the given component or interface name. When no name is given, generate stubs for all components/interfaces defined in the input files.
- Mappings template now also generates the signature of codels defined in interfaces.
- Allow interactive template with no input file (the template command [dotgen parse] still allows to parse files later).
- Add -C option to change to some directory before reading input files (thus resolving input file relative to the specified directory).
- Allow simple codels in attributes. This can be useful as a hook performing a related action when an attribute is set.
- Fixed error detection and reporting when an input file does not exist.
- Detect and report invalid use of events, ports or remote types in services parameters.
- Fixed internal issues with task, codels and properties inheritance from an interface.
- Fixed call() interface for remote objects (ignore local internal parameters).
- Fixed digest for services and remotes having local parameters or exceptions.
- Fixed name mangling for ports proxy types (use fullname to avoid conflicts between ports with different data types).
- When providing a port via an interface, use the type from the interface so that codels from the interface and codel from a component providing it sees the same type. For backward compatibility, an alias is still created in the component, but new skeleton will use the interface type.
- Improve template function [$object loc] returning the original component context where it is defined. This is not necessarily the current component in case of interface inheritance.
- Add a template helper function to parse templates' command line, with optional component or interface names:
- [template arg files]: the list of files arguments on the command line
- [template arg names]: the list of arguments that are not files
- [template arg components]: the components objects corresponding to names
- [template arg next]: previous `template arg` function (that is unchanged)
- Add optional component argument to common templates for .pc files (default to first component of inputs files for backward compatibility).
- Fix template function [$type return-value] for bounded string or arrays passed by value.
- Do not pretend to support yacc. Bison is required.
- Match template.* files against a list of known template engines to avoid obscure error message if backup files are present.
- Support --without-templates in component configuration.
Comments