Project

General

Profile

Revision 32bafa6f

View differences:

TODO.org
286 286
** TODO list
287 287

  
288 288
* Salsa
289
* 
289
* Lusic 
290
  Lusic can be generated either from lusi files or from lus files
291
  They shall contain at least
292
  - the complete definitions of types
293
  - the complete definition of constants
294
  - the list of nodes and their types/clocks
295
  - the complete definition of specification components:
296
    - either defined in lusi as 
297
      - node spec: attached to a node
298
      - contract: expressed as an imported node with a spec
299
    - or defined in the lus
300
      - node spec
301
      - contract defined in a comment
302
  - some compilation related information if compiled from a lusi
303
    
304

  
305
  What happen when we compile first a lusi and then the lus file?
306
  - types of the lus node are checked wrt the ones available in the
307
    lusic (coming from the lusi)
308
  - do we want to update the lusic for additional specification
309
    defined in the lus, or do we assume that the lusi masks the spec
310
    artifacts defined in the lus file ?
311
  - do we want to embeded the node content in the compiled lusic,
312
    updating it?
313

  
314
  When opening another module, one loads the lusic file
315
  - if compilation directives are provided then can support the
316
    generation of the Makefile, linking proper libs.
317
  - if the lusic contains node content one may use these to perform
318
    inlining if asked by the users or in certain configurations
319
    - decision: lusic do not contain actual code: #include shall allow
320
      to include external lustre copde and inline it as if it was
321
      defined in the current file
322

  
323
  We would like to know whether a declared node:
324
  - is an external function, possibly specified but not associated
325
    eventually to some lustre node. Ie type conversion functions,
326
    array functions with loops, ...
327
  - is a pure specification function/node/contract
328
  - is just a signature(+spec) of a regular node
329

  
330
  Contracts in lusi are compiled as imported node with spec. We could
331
  keep the info that they will not be associated to some real code.
332
  While a regular imported node could.
333

  
334
  Now the question is how to tag a lusi file to explicitely state that
335
  no lus file will be associated to it. May be one can provide a link
336
  to the backend implemented.  Let say that this lusi file can be used
337
  for the C backend then a C file should be provided. Do we want to
338
  mention it in the lusi file?
339

  

Also available in: Unified diff