History log of /seL4-camkes-master/projects/camkes-tool/camkes/templates/__init__.py
Revision Date Author Comments
# 54eacd25 17-Jan-2020 Kent McLeod <Kent.Mcleod@data61.csiro.au>

Remove call to gcc for calculating type sizes

This method supported calculating type sizes for types outside of the
Camkes built-in range but isn't used and uses incorrect compiler
arguments.


# 21becfa9 16-Jul-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

ast,runner: Remove template field from connector

This allows us to more easily extend the mechanisms for constructing
components and connectors.


# 8b2ec3e6 20-Jun-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Fix licenses


# 0fadff05 02-Apr-2017 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

Remove hardcoded min and max untyped size


# 94bf6f87 29-Mar-2017 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

More robust sizeof macro


# bacfebce 27-Oct-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Refactored parser init commit.


# 4f0a8fdb 08-Jan-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Optimisation: pre-compile templates when the compilation cache is enabled.

This commit makes some changes that kick in when the compilation cache is
enabled. If it is the first time we have seen the templates, they are compiled
into Python byte code and stored in the compilation cache. When rendering
templates after this, we can just retrieve the pre-compiled version from the
compilation cache.

It is difficult to measure the effect of this because it is optimising for a
case when you have edited your ADL (cache miss on the rendered template itself)
but have not modified CAmkES itself. A contrived benchmark gives an optimistic
performance improvement of 5%, but too much weight should not be given to this
figure.


# 2187a516 22-Oct-2014 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Move Jinja macros into Python.

Jinja macros have unexpected, and often unpleasant, behaviour. A non-exhaustive
list of issues with them is:
- They are not first class Python functions so cannot be passed within the
template context to, e.g., `map`;
- They can mask and inadvertently overwrite your local variables;
- Certain types of references have unexpected expansions within the context of
a macro;
- Calling a macro within a macro is dangerous; and
- You cannot call certain Python functions from within a macro.

This commit transliterates the existing macros into Python, attempting to
preserve all current functionality. This has involved essentially inverting
their implementation such that they become C hosted within Python, rather than
Python hosted within C. The macros are now unconditionally available to all
templates (see Context.py).

This change is intended to be transparent to template authors and CAmkES users.

Conflicts:
camkes/templates/echronos/eChronosAsynch-from.template.c
camkes/templates/echronos/eChronosAsynch-to.template.c
camkes/templates/linux/component.template.h
camkes/templates/linux/linuxMQ-from.template.c
camkes/templates/linux/linuxMQ-to.template.c
camkes/templates/linux/linuxMQEmpty-from.template.c
camkes/templates/linux/linuxMQEmpty-to.template.c
camkes/templates/linux/linuxMmap-from.template.c
camkes/templates/linux/linuxMmap-to.template.c
camkes/templates/macros.jinja


# cc64bb50 21-Jul-2014 TrustworthySystems <gatekeeper@sel4.systems>

Release snapshot