Newbie questions about Pliant

Newbie questions about Pliant

usage of runtime_compile

I saw runtime_compile being called in the fixed array meta.
* What are its parameters?
* Any comments on how to use it?
Message posted by Micky Latowicki on 2001/10/18 13:30:00
Any comments would be appreciated.
Message posted by maybe Hubert Tonneau on 2001/10/18 17:27:23
The arguments of 'runtime_compile' are a set of pairs, then a bloc.
Each pair contains first an identifier, then a value.
In the bloc, each identifier found in one of the pairs will be substituted
with the value, then the bloc will be compiled.

A template is generaly two parts:
. a cache (if the template is called twice with the same set of arguments,
  then it will be compiled only once)
. a body that will be compiled once for each new set of arguments.

in /pliant/language/type/set/array.pli example,
'pliant array types' relation is handling first part (the cache),
'runtime_compile' is handling the second part (compiling after substituting).

So the difference between a Pliant meta like 'Array' and a C++ template is that
Pliant is lower level (harder to use), and more powerfull (can make
compile time optimizations such ast 'if (Value:flags .and. type_flag_scalar)=0'
still from the array.pli example).