Project

General

Profile

News

AM genom3 3.3 released

Added by Anthony Mallet about 1 month ago

Changes

  • Add new information to the components 'context' for codels: instance name, extra command line arguments (that were not consumed by the templates), whether it runs in debug mode (-d) and logging functions for info, warning and debug.
  • Drop deprecated genom_<comp>_client_<port>_port (since genom-3.0)
  • Drop deprecated json-types.h template, (since genom-3.0)
  • Prevent failing activities from overwriting each other's exception data (for two consecutive failing activities in the same task)
  • Fix potentially ignored after/before constraint (only allow when the corresponding activity has terminated successfuly)
  • Fix initialization of first deadline for periodic tasks (not starting on a multiple of the period when the period is not a divisor of one second)
  • Fix some issues in json decoding of genom_unkex (unknown exception)
  • Treat genom_ok as unknown exception in JSON exception encoding
  • Fix "bad transition" log message appending random error to actual message
  • Fix skeleton template when invoked with multiple components (generate one autoconf header per component, better compound README.adoc)
  • Allow json_scanex() to reuse a buffer passed in the output arguments
  • Avoid using potentially big compound initializer for component data (excessive stack usage when compiled without optimization)

Download

genom-3.3.tar.gz

AM genom3 3.2 released

Added by Anthony Mallet 3 months ago

Changes

  • Fix race condition between task creation and task activity startup
  • Fix genom_fatal exception handling in template json code
  • Add connect/disconnect methods for client ports, bump protocol version to 20260612. All clients needs recompilation.

Download

genom-3.2.tar.gz

AM genom3 3.1 released

Added by Anthony Mallet 5 months ago

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

AM genom3 2.99.46 released

Added by Anthony Mallet 12 months ago

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

AM genom3 2.99.44 released

Added by Anthony Mallet over 1 year ago

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

AM genom3 2.99.42 released

Added by Anthony Mallet over 2 years ago

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

AM genom3 2.99.41 released

Added by Anthony Mallet almost 3 years ago

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

(1-10/24)

Also available in: Atom