LIME / doc / TODO


Copyright (C) 2008 NXP Semiconductors B.V.

This file is part of LIME.

LIME is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

LIME is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with LIME.  If not, see <>.

. merging of ports into a single channel, possibly according
  to the type of the message field

. node_ret -> node_role
. structure to node roles
. #pragma's via diversity on 'actor' symbol

. support recursive mapping with slimer (library target with
  generated entrypoints)
. combination back-ends

. structure to edge types.  handle <edge type> as <port size>
  (multiple <type> for complex cases)
. derive edge types from graph structure

. in-place processing with plain->structured conversion
  (for zero-copy split/merge)

. better graphviz mapping
. graphviz stage in GXF pipeline (meta id="visual")

. move constructors/destructors outside of the loop

. generate shells from modules, xi:include modules in
  the generated GXF

. fix bogus bound-to and external ports

. auto-tuning
. better external port rate derivation for strict CSDF
. a use for [*] and []
. materialization of BDF/MCDF, MDDF constructs

. clearup "cloning", "instantiation", "activation", "iteration"  and
. check that static ports are connected
. support global state (volatile ports)
. improve metamorph support
. improve instantiation in face of multiple streams
. mapping of nodes to "main"

. remove double-buffering

. full support for node_code (also with constructors and delays)
. multiple node_code fragments for various cores
. multiple versions of the same node for various cores

. selective multiport as collective & grouped multiports
. replicated multiports (constp ports)

. derivation of ports in edges, in a node has only one, or if type
  uniquely identifies a port
. multilink ports with bcast/reduce semantics (also: nolink ports)
. open-ended collectives and selectives (specify just one sub-port 
  inside the union, and just an int as a selective tag - then, any
  number of sub-ports can be derived: sortof a "phantom")

. extend Pthread with 
  1. mqueue (POSIX)
  2. fifo (Pthread)
  3. pipe (UNIX)
  4. sock (UNIX)
  5. shmem (POSIX)
  6. shvar
. finish UNIX BE
. extend UNIX with
  1. pipe (UNIX)
  2. shmem (SysV)
  3. shvar

. improve xlink support
. relaxed type matches
. relaxed dimension matches
. dynamic task creation

. dynamic connection to various actors
. dynamic instantiation of actors

. support TeX formulas in HTML output
. extend literate chunking with Matlab

. handle components from files in other (sub)folders