- Sep 02, 2008
-
-
Erwan Jahier authored
-
- Sep 01, 2008
-
-
Erwan Jahier authored
-
- Aug 29, 2008
-
-
Erwan Jahier authored
-
- Aug 28, 2008
-
-
Erwan Jahier authored
-
Erwan Jahier authored
polymorphic operators. For instance, when LicDumping expression such as map<<map<<+,4>>,5>> an alias node was created for "map<<+,4>>" (to unnest iterator calls). Fut this node is intrically overloaded (polymorphic). In this change, we look at the type this innr call is used to generate a specialised (mono-morphic) version of the node alias. Note that we currently still generate type variable when users write node mymap = map<<+,4>>;
-
- Aug 22, 2008
-
-
Erwan Jahier authored
enum nor a bool.
-
- Aug 21, 2008
-
-
Erwan Jahier authored
-
- Aug 19, 2008
-
-
Erwan Jahier authored
as many new local variables as necessary so that an expression is made at most of one operator. The rational for that is to obtain a lic code that is trivial to clock check (nested node calls, for example, make it less simple). The old behavior can still be obtained using --keep-nested-calls. During that change, I realised that I did not clock check asserts. Hence, I have also added this check.
-
- Jul 23, 2008
-
-
Erwan Jahier authored
to avoid name clashes in the lic.
-
- Jul 22, 2008
-
-
Erwan Jahier authored
-
- Jul 01, 2008
-
-
Erwan Jahier authored
-
- Jun 30, 2008
-
-
Erwan Jahier authored
Add some tests with various kinds of expr that we can have after a when.
-
- Jun 26, 2008
-
-
Erwan Jahier authored
Not yet implemented (assert false): iterators, struct Add a UnifyClock module, and rename Unify into UnifyType. nb : a lot of test are now broken, because - the clock checking is now plugged ;-) - iterators, struct are not yet implemented
-
- Jun 12, 2008
-
-
Erwan Jahier authored
It does not work, I have changed my mind to use a more general clocking algorithm based on unification. I commit that current state just in case I change my mind again...
-
- Jun 09, 2008
-
-
Erwan Jahier authored
the parameters input types are compatible with Unify.f. Apply (if necessary) the resulting substitution to the output parameters. Also, when checking array concat, try to unify the types of both arrays instead of just checking their equality. This of course triggers some errors in the non-reg tests. One of this error is due to a bug in the parser, where the list of parameter was inversed twice. I've also fixed that in this change.
-
Erwan Jahier authored
type_eff_ext into type_eff btw). The rationale is to be able to type alias on polymorphic nodes (cf test/should_fail/semantics/bad_call03.lus, that now have a correct error msg). It also makes to code more compact (no more translation from one to the other), and more general (type_eff_ext being more general than type_eff). User polymorphic nodes should be easy now. move all the code in parsey.mly into parserUtil.ml (ease the debug).
-
- Jun 06, 2008
-
-
Erwan Jahier authored
equations is not done at all yet). Also, print the clock decorations (when clk) in the generated file.
-
- Jun 05, 2008
-
-
Erwan Jahier authored
and PredefEvalClock.
-
- Jun 02, 2008
-
-
Erwan Jahier authored
represented. Indeed, it was represented by "HAT_eff of int * type_eff" instead of "HAT_eff of int * val_exp_eff"
-
Erwan Jahier authored
before '..'.
-
- May 29, 2008
-
-
Erwan Jahier authored
-
- May 27, 2008
-
-
Erwan Jahier authored
when trying to unify, e.g., "a^3" and "int^3". Such kind of things occured when one imbricates iterators. In fact, it was not possible to get it rigth with the data representation used for node profiles, which was not sufficiently general.
-
- May 26, 2008
-
-
Erwan Jahier authored
overloaded operator. Moreover, do not try to check that int or real constant are ok. It is the role of the host language.
-
Erwan Jahier authored
performed. The resulting code is both more compact, and more general. It is more general, since that predef operators are now represented by node_exp_eff, exactly as user nodes. Hence, all the functions that were operating on user nodes via node_exp_eff (such as, node aliasing) works for free on predef op! In order to be able to perform that generalisation, it was necessary to extend sligthly the data structure used to represent the node profile in CompiledData.node_exp_eff with information indicating if a variable is polymorphic or overloaded. Not that, currently, polymorphic or overloaded variables can only be introduced by predef operators. But I think it would be easy to add those notions for normal user nodes after this change. New non-reg files boolred now compiles. Those involving - boolred - alias on predef.op
-
- May 20, 2008
-
-
Erwan Jahier authored
(support for fill, red, etc. is coming soon). In order to add support for iterators, I have extended the by_pos_op (and the by_pos_op_eff) data type with a list of static arguments. In other words, iterators are handled as a particular case of predefined operators.
-
- May 16, 2008
-
-
Erwan Jahier authored
-
- May 02, 2008
-
-
Erwan Jahier authored
not compile them is (well, was) the default...). also, during pretty-printing, remove the type in the constant definition (e.g., "const x = 42;" instead of "const x = 42:int;"), except if it is an abstract constant of course
-
- Apr 02, 2008
-
-
Erwan Jahier authored
For non-regression tests, do not use Lazycompiler.test function anymore and just use LazyCompiler.node_check instead. put in the new file compiledDataDump.ml all the stuff related to string convertions of CompiledData items.
-
- Mar 28, 2008
-
-
Erwan Jahier authored
and anonymous structures. I've even found some type errors in the non-reg files!
-
- Mar 17, 2008
-
-
Erwan Jahier authored
EvalNode.f -> GetEff.node, EvalType.f -> GetEff.typ, EvalEq.f -> GetEff.eq EvalConst.f (val_exp -> const_eff list) should have been put there too, but in fact EvalConst.f ougth to be splitted in two parts: - val_exp -> val_exp_eff (but this function already exist) - val_exp_eff -> const_eff list Therefore, the signature of EvalConst.f will be changed to: val_exp_eff -> const_eff list (and will use GetEff.val_exp) Ditto for eval_array_index. eval_array_index : CompiledData.id_solver -> SyntaxTreeCore.val_exp -> int -> int ougth to be splitted into two functions: - CompiledData.id_solver -> SyntaxTreeCore.val_exp_eff - SyntaxTreeCore.val_exp_eff -> int -> int Ditto for eval_array_size eval_array_size : CompiledData.id_solver -> SyntaxTreeCore.val_exp -> int ougth to be splitted into two functions: - CompiledData.id_solver -> SyntaxTreeCore.val_exp_eff - SyntaxTreeCore.val_exp_eff -> int arg... evalConst.f est utilis par GettEff.typ !!!
-
- Mar 06, 2008
-
-
Erwan Jahier authored
-
- Feb 11, 2008
-
-
Erwan Jahier authored
-
- Feb 06, 2008
-
-
Erwan Jahier authored
src/syntaxTreeCore.ml (new file) Split syntaxTree.ml into syntaxTree.ml and syntaxTreeCore.ml. The idea is that lic2loc should be able to use syntaxTreeCore.ml verbatim. src/lxm.ml src/lxm.mli remove pack_name from this module, so that it can be shared with lic2loc too (this is mandatory since it is used by SyntaxTreeCore) src/compile.ml src/compiledData.ml src/evalConst.ml src/evalConst.mli src/evalType.ml src/evalType.mli src/expandPack.ml src/lazyCompiler.ml src/main.ml src/parser.mly src/symbolTab.ml src/symbolTab.mli src/syntaxTab.ml src/syntaxTreeDump.ml src/syntaxTreeDump.mli src/test/Makefile src/test/packs.lus src/test/test.res.exp opening SyntaxTreeCore module, and inline the definition of Lxm.pack_name. Also, begin to replace oper by node or predef_node in identifiers, in order to get a more consistant naming scheme.
-
- Dec 21, 2007
-
-
Erwan Jahier authored
-
- Dec 17, 2007
-
-
Erwan Jahier authored
-
- Dec 14, 2007
-
-
Erwan Jahier authored
-
Erwan Jahier authored
Ident.t is now an abstract data type (instead of a string). fullid is turned into an Ident.long, and is also made abstract.
-
- Dec 05, 2007
-
-
Erwan Jahier authored
Add basic regression tests. Add "assert false" statements everywhere it was necessary. Add the fby operator in the syntax.
-
- Oct 19, 2007
-
-
Erwan Jahier authored
-