genom3 2.99.41 released

Added by Anthony Mallet 8 months ago


  • 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.