Changes¶
- Even though the major number is increased from 2 to 3, this release does not break compatibility. It just escapes from the curse of 2.99.* versions.
- Pass to the regen command from skeleton template any additional object name given on the command line.
- Remove reference to libtool archive in the -uninstalled codels .pc file generated by skeleton template.
- Sort tasks in Makefile.am for codels sources generated by the skeleton template. This should prevent spurious merge glitches if the task order is changed, but in the meantime this will lead to merge glitches when updating component skeleton, be careful.
- Let engine command [template parse] and [template require] search for input file in builtin template dir
- Export argv0 in parsed template files to the full path of source file
- Arguments set in [template parse] may be set to -, reusing previous args
- Add engine procedure 'args', assigning template source arguments to variables and checking number of given arguments
- Add mising mangling rules for 'events' and 'pause events' types in language mappings.
- Add generator engine function [$component events]
- Add missing component events in [$components types private]
- Add a 'visibility' property for ports and services, with 'visibility: hidden' intended for ports or services to be hidden from clients (used by the pocolibs template to implement remote service call).
- Add common template files for component and client implementation. This factors out some common code between genom templates, that is middleware independant and may be shared. They are provided as a convenience, template can still choose to implement their own variations. Existing templates will not be affected by this commit until they start using these files.
- Deprecate common template json-types.h in favor of jsonops-c.h, that has less potential name collisions (symbols are prefixed with genom) and more functions to deal with exceptions scanning/printing from/to C.
Download¶
genom-3.1.tar.gz
Changes¶
- Add an optional 'private' flag to 'codels-require' to prevent dependency transitivity in interfaces.
- Import FSM events from interfaces in the local component namespace so that they represent the same event.
- Fix a typo in C mappings documentation for sequences
- Fix compatibility with tcl-9.
Download¶
genom-2.99.46.tar.gz
Changes¶
- Skeleton template generates interface names as <x>-libgenom3 instead of <x>-genom3.
- Update newline cancellation rule between <' '> template tags at the beginning of a template source.
- Add AUTHORS, LICENSE and README metadata files (#442).
Download¶
genom-2.99.45.tar.gz
Changes¶
- Updated client interface to version 20250116
- Add input port publishers in the C client interface
- Add a 'data' member in C client output port information, holding a buffer of the appropriate type and size for reading ports.
- Always use autoreconf after updating configure.ac of templates specified in --with-template configure option
- Remove useless codel files (if not modified), e.g. when switching from skeleton -l c to -lc++ or vice versa
- Use an intermediate variable for pkg-config dependencies in skeleton generated configure.ac, allowing for more flexibility when manually adding more dependencies
Download¶
genom-2.99.44.tar.gz
Changes¶
- Fix an issue when using paused and non-paused transitions for the same event in a codel.
- Fix inheritance of component properties from a 'used' interface.
- Don't merge 'doc' title line from 'provided' interfaces.
- Update the component model documentation.
Download¶
genom-2.99.43.tar.gz
Changes¶
- Let skeleton generate stubs for external tasks with local codels
- Fix event namespace for codels imported from interface activities
- Fix passing arguments of type arrays of native or arrays of strings(implicit const cast from type ** to const type * const * forbidden)
- Fix mapping of pointers to fixed size arrays
- Fix the use of interfaces with task codels
- Constify the exception detail in function raising exceptions
Download¶
genom-2.99.42.tar.gz
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.
Download¶
genom-2.99.41.tar.gz
Changes¶
- Remove the 'const' qualifier from the C mapping of _maximum in bounded sequence
- Allow 'stack' property to be specified at component level (for all tasks)
- Fix possibly missing 'optional' keyword in generated type documentation
Download¶
genom-2.99.40.tar.gz
Changes¶
- Fix potentially missing declaration for builtin integer types in codels signatures (#270)
- Fix missing parameter in generated client callback signatures
- Fix multiply defined symbols with -fno-common (gcc-10 default) in pcpp
- Fix peak usage computation of profiling events
- Log events corresponding to the sleep time required to get a new profiling event (in verbose profiling mode)
- Various minor enhancement in the profundis GUI (vertical scrolling with mouse wheel, double click on leaf items, mouse button action documentation, key bindings to open/close all items).
- Export profiling stats in seconds instead of ns (#276)
Download¶
genom-2.99.39.tar.gz
Changes¶
- Fix inverted logic in profiling functions when the events queue is full.
- Fix profiling API for C++.
- Update profiling API to make it component-independant.
- Allow to resize the profiling events queue at code generation time.
- Reduce memory footprint of the 'profundis' tool, to load bigger files without paging.
Download¶
genom-2.99.38.tar.gz