From b81cda3caed8b86f3158ddff3ff76eda58f4fd7b Mon Sep 17 00:00:00 2001 From: Erwan Jahier <jahier@imag.fr> Date: Wed, 17 Sep 2008 16:22:34 +0200 Subject: [PATCH] Enhance the test coverage rule in src/Makefile (print the ratio dead hits versus all hits). --- src/Makefile | 10 +- src/dead.grep | 804 +++++++++++++++++++------------------- src/untested_line_counter | 2 +- 3 files changed, 410 insertions(+), 406 deletions(-) diff --git a/src/Makefile b/src/Makefile index 89a42f8a..5b37005e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -70,15 +70,19 @@ test/ocamlprof.dump: pbc test prof: test/ocamlprof.dump mkdir prof || rm prof/* for d in ${SOURCES}; do \ - ocamlprof -f test/ocamlprof.dump $$d > prof/$$d ;\ + ocamlprof -F "ocamlprof: " -f test/ocamlprof.dump $$d > prof/$$d ;\ done grep: rm test/ocamlprof.dump || true make clean make prof - grep -n -e "(\* 0 \*)" prof/*.ml | grep -v "assert false" > dead.grep - wc dead.grep > untested_line_counter + grep -n -e "(\* ocamlprof: 0 \*)" prof/*.ml | grep -v "assert false" > dead.grep + grep -n -e "(\* ocamlprof: " prof/*.ml | grep -v "assert false" > all.grep + DEAD_HITS=`wc -l dead.grep | cut -f 1 -d " "`;\ + ALL_HITS=`wc -l all.grep | cut -f 1 -d " "`;\ + SOL=`echo "scale=2 ; $$DEAD_HITS * 100 / $$ALL_HITS " | bc ` ;\ + echo "$$DEAD_HITS / $$ALL_HITS = $$SOL %" > untested_line_counter cat untested_line_counter ##############################################################################" diff --git a/src/dead.grep b/src/dead.grep index 6468ebfc..01b8363e 100644 --- a/src/dead.grep +++ b/src/dead.grep @@ -1,402 +1,402 @@ -prof/compile.ml:31: if Verbose.get_level () > 2 then (* 0 *) SyntaxTab.dump syntax_tab; -prof/compile.ml:38: (* 0 *) let main_node_key = -prof/compile.ml:46: (* 0 *) LazyCompiler.compile_all lzcomp -prof/compile.ml:48: (* 0 *) ignore(LazyCompiler.node_check lzcomp main_node_key -prof/compile.ml:50: | None -> (* 0 *) Lxm.dummy "" -prof/compile.ml:51: | Some pn -> (* 0 *) Lxm.dummy (Ident.pack_name_to_string pn))) -prof/eff.ml:424: | On(cid1,_), On(cid2,_) -> (* 0 *) cid1 = cid2 -prof/eff.ml:437: fun nkey -> (* 0 *) (nkey, []) -prof/eff.ml:446: | Enum_type_eff(l,el) -> (* 0 *) Enum_type_eff(l,el) -prof/eff.ml:463: | Struct_const_eff (fl, teff) -> (* 0 *) teff -prof/errors.ml:123:let warning lxm msg = (* 0 *) ( -prof/errors.ml:138:let print_internal_error fnme msg = (* 0 *) ( -prof/evalClock.ml:139: | On(_,_), BaseEff -> (* 0 *) None -prof/evalClock.ml:144: with _ -> (* 0 *) is_a_sub_clock lxm s (id_sc,sc) (id_c,clk2) -prof/evalClock.ml:150: (* 0 *) let s1,s2 = s in -prof/evalClock.ml:154: (* 0 *) let s1,s2 = s in -prof/evalClock.ml:196: | id, On(v, ClockVar _) -> (* 0 *) id, On(v, BaseEff) -prof/evalClock.ml:206: (* 0 *) print_string "*** No entry for '"; -prof/evalClock.ml:243: (* 0 *) raise (Compile_error(lxm, "\n*** can't eval constant: "^msg)) -prof/evalClock.ml:266: | [id, BaseEff] -> (* 0 *) [id, BaseEff],s -prof/evalClock.ml:273: | Base -> (* 0 *) BaseEff, BaseEff -prof/evalClock.ml:293: (* 0 *) let msg = "\n*** clock error: '" ^ (ci2str (snd exp_clk)) ^ -prof/evalClock.ml:364: | ClockVar i -> (* 0 *) ci -prof/evalConst.ml:26:let finish_me msg = (* 0 *) print_string ("\n\tXXX evalConst.ml:"^msg^" -> finish me!\n") -prof/evalConst.ml:29: (* 0 *) raise (EvalConst_error( -prof/evalConst.ml:45: (* 0 *) let get_res (ix : int) = (* 0 *) Array.get ctab (slice.se_first + ix*slice.se_step) in -prof/evalConst.ml:52: (* 0 *) let expected_type = ref None in -prof/evalConst.ml:54: (* 0 *) match op with -prof/evalConst.ml:55: | [x] -> (* 0 *) ( -prof/evalConst.ml:59: | None -> (* 0 *) expected_type := Some xtyp; x -prof/evalConst.ml:60: | Some t -> (* 0 *) ( -prof/evalConst.ml:61: if (t = xtyp) then (* 0 *) x else -prof/evalConst.ml:62: (* 0 *) raise (EvalConst_error( -prof/evalConst.ml:70: (* 0 *) raise (EvalConst_error("array of tuple not allowed")) -prof/evalConst.ml:74: | None -> (* 0 *) raise (EvalConst_error("empty array")) -prof/evalConst.ml:75: | Some t -> (* 0 *) Array_const_eff(res, t) -prof/evalConst.ml:86: (* 0 *) ( -prof/evalConst.ml:89: Struct_type_eff (tnm, flst) -> (* 0 *) ( -prof/evalConst.ml:91: let make_eff_field ((fn: Ident.t),((ft:Eff.type_),(fv:Eff.const option))) = (* 0 *) ( -prof/evalConst.ml:95: (lxm, v) -> (* 0 *) ( -prof/evalConst.ml:99: if (vt = ft) then (* 0 *) (fn, v) (*ok*) -prof/evalConst.ml:100: else (* 0 *) raise (Compile_error( -prof/evalConst.ml:109: ) with Not_found -> (* 0 *) ( -prof/evalConst.ml:112: Some v -> (* 0 *) (fn, v) (* ok : v correcte par construction *) -prof/evalConst.ml:114: (* 0 *) raise (EvalConst_error( -prof/evalConst.ml:125: = (* 0 *) raise(Compile_error( -prof/evalConst.ml:137: | _ -> (* 0 *) raise (EvalConst_error( -prof/evalConst.ml:175: | SyntaxTreeCore.CallByName ({it=nmop; src=lxm}, nmargs ) -> (* 0 *) ( -prof/evalConst.ml:178: (* 0 *) raise (Compile_error(lxm, "\n*** can't eval constant: "^msg)) -prof/evalConst.ml:206: | WITH_n(a0,a1,a2) -> (* 0 *) ( -prof/evalConst.ml:208: [ Bool_const_eff true] -> (* 0 *) rec_eval_const a1 -prof/evalConst.ml:209: | [ Bool_const_eff false] -> (* 0 *) rec_eval_const a2 -prof/evalConst.ml:210: | x -> (* 0 *) type_error_const x "bool" -prof/evalConst.ml:213: | TUPLE_n -> (* 0 *) ( List.flatten (List.map rec_eval_const args)) -prof/evalConst.ml:225: (* 0 *) raise (EvalConst_error("array of tuple not allowed")) -prof/evalConst.ml:227: EvalArray_error msg -> (* 0 *) raise(EvalConst_error msg) -prof/evalConst.ml:229: | _ -> (* 0 *) raise(EvalConst_error -prof/evalConst.ml:233: | CONCAT_n -> (* 0 *) ( -prof/evalConst.ml:237: [Array_const_eff (v1, t1)]] -> (* 0 *) ( -prof/evalConst.ml:239: (* 0 *) [Array_const_eff (Array.append v0 v1, t0)] -prof/evalConst.ml:241: (* 0 *) raise(EvalConst_error( -prof/evalConst.ml:249: (* 0 *) raise(EvalConst_error( -prof/evalConst.ml:251: | _ -> (* 0 *) raise(EvalConst_error -prof/evalConst.ml:255: | ARRAY_n -> (* 0 *) ( -prof/evalConst.ml:262: | [Array_const_eff (elts, typelts)] -> (* 0 *) ( -prof/evalConst.ml:267: with EvalArray_error msg -> (* 0 *) raise(EvalConst_error msg) -prof/evalConst.ml:269: | _ -> (* 0 *) type_error_const effargs "some array" -prof/evalConst.ml:271: | ARRAY_SLICE_n sl -> (* 0 *) ( -prof/evalConst.ml:274: | [Array_const_eff (l, t)] -> (* 0 *) (l, t) -prof/evalConst.ml:275: | x -> (* 0 *) type_error_const x "some array" -prof/evalConst.ml:284: EvalArray_error msg -> (* 0 *) raise(EvalConst_error msg) -prof/evalConst.ml:288: (* 0 *) let ceff_list = List.flatten (List.map rec_eval_const args) in -prof/evalConst.ml:290: | [Struct_const_eff (flst, typ)] -> (* 0 *) ( -prof/evalConst.ml:293: (* 0 *) raise (EvalConst_error -prof/evalConst.ml:298: | [x] -> (* 0 *) type_error_const [x] "struct type" -prof/evalConst.ml:299: | x -> (* 0 *) arity_error_const x "1" -prof/evalConst.ml:302: | CALL_n _ -> (* 0 *) not_evaluable_construct "node call" -prof/evalConst.ml:303: | MERGE_n _ -> (* 0 *) not_evaluable_construct "merge" -prof/evalConst.ml:304: | WHEN_n _ -> (* 0 *) not_evaluable_construct "when" -prof/evalConst.ml:305: | FBY_n -> (* 0 *) not_evaluable_construct "fby" -prof/evalConst.ml:306: | ARROW_n -> (* 0 *) not_evaluable_construct "->" -prof/evalConst.ml:307: | CURRENT_n -> (* 0 *) not_evaluable_construct "current" -prof/evalConst.ml:308: | PRE_n -> (* 0 *) not_evaluable_construct "pre" -prof/evalConst.ml:317: (* 0 *) not_evaluable_construct (op2string op) -prof/evalConst.ml:331: = (* 0 *) ( -prof/evalConst.ml:334: (* 0 *) finish_me "anonymous struct"; -prof/evalConst.ml:337: | STRUCT_n opid -> (* 0 *) ( -prof/evalConst.ml:341: (* 0 *) if -prof/evalConst.ml:344: (* 0 *) raise(EvalConst_error( -prof/evalConst.ml:350: (* 0 *) let v = rec_eval_const pexp in -prof/evalConst.ml:352: | [x] -> (* 0 *) Hashtbl.add arg_tab pid.it (pid.src, x) -prof/evalConst.ml:354: (* 0 *) raise( -prof/evalConst.ml:367: (* 0 *) raise(EvalConst_error( -prof/evalConst.ml:398: (* 0 *) raise(EvalArray_error(sprintf "bad array size %d" sz)) -prof/evalConst.ml:400: (* 0 *) raise(EvalArray_error(sprintf "bad array size, int expected but get %s" -prof/evalConst.ml:403: (* 0 *) raise(EvalArray_error(sprintf "bad array size, int expected, not a tuple")) -prof/evalConst.ml:431: (* 0 *) raise(EvalArray_error("The extern const " ^ (Ident.string_of_long id) ^ -prof/evalConst.ml:434: | [x] -> (* 0 *) raise(EvalArray_error(sprintf -prof/evalConst.ml:438: | _ -> (* 0 *) raise(EvalArray_error( -prof/evalConst.ml:444: (* 0 *) raise (Compile_error(lxm, "\n*** can't eval constant: "^msg)) -prof/evalConst.ml:448: else (* 0 *) raise(EvalArray_error( -prof/evalConst.ml:477: | [x] -> (* 0 *) raise(EvalArray_error( -prof/evalConst.ml:480: | _ -> (* 0 *) raise(EvalArray_error( -prof/evalConst.ml:483: | None -> (* 25 *) if (first_ix <= last_ix) then (* 25 *) 1 else (* 0 *) -1 -prof/evalConst.ml:490: (* 0 *) let msg = sprintf "bad array slice [%d..%d] step %d" first_ix last_ix step in -prof/evalConst.ml:498: (* 0 *) warning lxm (sprintf "last index out of slice [%d..%d step %d]" -prof/evalConst.ml:512: (* 0 *) raise (Compile_error(lxm, "\n*** can't eval constant: "^msg)) -prof/evalType.ml:32:let finish_me msg = (* 0 *) print_string ("\n\tXXX evalType.ml:"^msg^" -> finish me!\n") -prof/evalType.ml:40: (* 0 *) raise (Compile_error(lxm, "type error: "^msg)) -prof/evalType.ml:45: (* 0 *) raise (Compile_error(lxm, "\n*** can't eval constant: "^msg)) -prof/evalType.ml:79: (* 0 *) raise (EvalType_error( -prof/evalType.ml:87: | UnifyType.Ko msg -> (* 0 *) raise (Compile_error(lxm, msg)) -prof/evalType.ml:100: | Eff.CONCAT -> (* 0 *) ( -prof/evalType.ml:103: (* 0 *) let teff = -prof/evalType.ml:105: | UnifyType.Equal -> (* 0 *) teff1 -prof/evalType.ml:106: | UnifyType.Unif subst -> (* 0 *) subst_type subst teff1 -prof/evalType.ml:107: | UnifyType.Ko msg -> (* 0 *) raise (Compile_error(lxm, msg)) -prof/evalType.ml:111: (* 0 *) raise(EvalType_error(sprintf "arity error: 2 expected instead of %d" -prof/evalType.ml:120: (* 0 *) raise (EvalType_error -prof/evalType.ml:125: | [x] -> (* 0 *) type_error [x] "struct type" -prof/evalType.ml:126: | x -> (* 0 *) arity_error x "1" -prof/evalType.ml:146: (* 0 *) raise(EvalType_error( -prof/evalType.ml:160: | Base -> (* 0 *) () -prof/evalType.ml:175: | _ -> (* 0 *) raise(EvalType_error("arity error (1 arg expected)")) -prof/evalType.ml:182: (* 0 *) raise(EvalType_error("type mismatch. ")) -prof/evalType.ml:183: | _ -> (* 0 *) raise(EvalType_error("arity error (2 args expected)")) -prof/evalType.ml:190: | _ -> (* 0 *) raise(EvalType_error("arity error (1 arg expected)")) -prof/evalType.ml:209: (* 0 *) finish_me "anonymous struct not yet supported"; -prof/expandPack.ml:22: (* 0 *) let msg = Printf.sprintf "bad pack instance: model %s undeclared" -prof/expandPack.ml:46: (* 0 *) let msg = Printf.sprintf -prof/expandPack.ml:57: (* 0 *) Lxm.flagit (Named_type_exp idr) arg.src -prof/expandPack.ml:59: | _ -> (* 0 *) instance_error () -prof/expandPack.ml:71: (* 0 *) ParserUtils.leafexp arg.src (IDENT_n idr) -prof/expandPack.ml:73: | _ -> (* 0 *) instance_error () -prof/expandPack.ml:87: | _ -> (* 0 *) instance_error () -prof/expandPack.ml:113: | None -> (* 0 *) acc -prof/expandPack.ml:116: if List.mem p_flagged acc then (* 0 *) acc else (* 3 *) p_flagged::acc -prof/expandPack.ml:129: (* 0 *) raise(Compile_error -prof/expandPack.ml:152: | None -> (* 0 *) None -prof/expandPack.ml:161: ) with Invalid_argument _ -> (* 0 *) ( -prof/getEff.ml:29: with EvalConst.EvalArray_error msg -> (* 0 *) raise(GetEffType_error msg) -prof/getEff.ml:32: (* 0 *) raise (Compile_error(texp.src, "can't eval type: "^msg)) -prof/getEff.ml:53: (* 0 *) raise (Compile_error(lxm, -prof/getEff.ml:63: (* 0 *) let msg = "type mismatch: \n***\t'" -prof/getEff.ml:115: (* 0 *) let ceff = node_id_solver.id2const idref sa.src in -prof/getEff.ml:119: (* 0 *) let teff = node_id_solver.id2type idref sa.src in -prof/getEff.ml:123: (* 0 *) let sargs = [] in -prof/getEff.ml:141: (* 0 *) let neff = node node_id_solver ne in -prof/getEff.ml:202: (* 0 *) raise (Compile_error(id.src, "bad field name in structure")) -prof/getEff.ml:204: | _ -> (* 0 *) raise (Compile_error(id.src, "a structure was expected")) -prof/getEff.ml:215: | _ -> (* 0 *) raise (Compile_error(vef.src, "an array was expected")) -prof/getEff.ml:226: | _ -> (* 0 *) raise (Compile_error(sif.src, "an array was expected")) -prof/getEff.ml:246: | STRUCT_anonymous_n -> (* 0 *) STRUCT_anonymous -prof/getEff.ml:254: | Some pn -> (* 0 *) STRUCT (pn, idref) -prof/getEff.ml:267: | StaticArgNode _ -> (* 0 *) raise (Compile_error(lxm, "a constant was expected")) -prof/getEff.ml:276: | StaticArgNode(CALL_n ne) -> (* 0 *) node id_solver ne -prof/getEff.ml:283: | StaticArgConst _ -> (* 0 *) raise (Compile_error(lxm, "a node was expected")) -prof/getEff.ml:304: (* 0 *) raise (Compile_error(lxm, "bad arguments number for array iterator")) -prof/getEff.ml:357: | CONCAT_n -> (* 0 *) Eff.CONCAT -prof/getEff.ml:368: | WHEN_n Base -> (* 0 *) Eff.WHEN Base -prof/getEff.ml:373: | Some _ -> (* 0 *) cc -prof/getEff.ml:391: (* 0 *) raise (Compile_error( -prof/getEff.ml:410: (* 0 *) raise (Compile_error( -prof/getEff.ml:429: | MERGE_n(id, idl) -> (* 0 *) Eff.MERGE(id, idl) -prof/getEff.ml:449: (* 0 *) let msg = "type mismatch: \n\tthe content of the assertion is of type " -prof/getEff.ml:467: (* 0 *) let msg = "clock error: assert should be on the base clock, "^ -prof/ident.ml:105: | _ -> (* 0 *) raise (Failure ("idref_of_string: \""^s^"\" not a proper ident")) -prof/ident.ml:111: [i] -> (* 0 *) !dft_pack_name, i -prof/ident.ml:113: | _ -> (* 0 *) raise (Failure ("idref_of_string: \""^s^"\" not a proper ident")) -prof/ident.ml:130: (* 0 *) match pack_of_idref idr with -prof/ident.ml:131: Some p -> (* 0 *) (p, name_of_idref idr) -prof/ident.ml:132: | None -> (* 0 *) (!dft_pack_name, name_of_idref idr) -prof/lazyCompiler.ml:10:let finish_me msg = (* 0 *) print_string ("\n\tXXX LazyCompiler:"^msg^" -> finish me!\n") -prof/lazyCompiler.ml:22: | [] -> (* 0 *) "nostack" -prof/lazyCompiler.ml:158: (* 0 *) print_string ("*** " ^ (Ident.string_of_long lid) ^ "???\n" ^ -prof/lazyCompiler.ml:196: | Eff.Incorrect -> (* 0 *) raise (BadCheckRef_error) -prof/lazyCompiler.ml:200: lookup_x_eff "type ref " (fun k -> (* 0 *) k) -prof/lazyCompiler.ml:240: (* 0 *) (raise (Compile_error(lxm,"unbounded " ^ x_label ^ " ident"))) -prof/lazyCompiler.ml:304: (* 0 *) raise(Compile_error ( -prof/lazyCompiler.ml:324: (* 0 *) raise(Compile_error (const_def.src, " constant values mismatch")) -prof/lazyCompiler.ml:328: (* 0 *) raise(Compile_error ( -prof/lazyCompiler.ml:345: (* 0 *) raise(Compile_error ( -prof/lazyCompiler.ml:386: (* 0 *) raise -prof/lazyCompiler.ml:394: (* 0 *) raise (Compile_error(field_def.src, -prof/lazyCompiler.ml:410: (* 0 *) if (root = type_name) then (* 0 *) recursion_error type_def.src stack else -prof/lazyCompiler.ml:411: (* 0 *) raise ( Recursion_error (root, ("type ref "^(Lxm.details lxm))::stack)) -prof/lazyCompiler.ml:456: (* 0 *) raise -prof/lazyCompiler.ml:464: | _::_ -> (* 0 *) raise (Compile_error(const_def.src, -prof/lazyCompiler.ml:498: (* 0 *) raise(Compile_error (node_def.src, msg_prefix ^ " ??? ")) -prof/lazyCompiler.ml:503: (* 0 *) let msg = msg_prefix ^ "bad input profile. \n*** " ^ -prof/lazyCompiler.ml:513: (* 0 *) let msg = msg_prefix ^ "bad output profile. \n*** " ^ -prof/lazyCompiler.ml:522: (* 0 *) raise(Compile_error (node_def.src, msg_prefix ^ " node or function?")) -prof/lazyCompiler.ml:526: (* 0 *) raise(Compile_error (node_def.src, msg_prefix ^ "safe or unsafe?")) -prof/lazyCompiler.ml:532: (* 0 *) raise(Compile_error (node_def.src, msg_prefix ^ "abstract or not?")) -prof/lazyCompiler.ml:623: (* 0 *) aux acc tail -prof/lazyCompiler.ml:632: (* 0 *) raise ( -prof/lazyCompiler.ml:736: (* 0 *) raise (Compile_error (lxm, "Can not alias 'nor' nor '#', sorry")) -prof/lazyCompiler.ml:763: (* 0 *) raise (Compile_error (lxm, "can not alias this operator, sorry")) -prof/lazyCompiler.ml:780: | UnifyType.Ko msg -> (* 0 *) raise(Compile_error(lxm, msg)) -prof/lazyCompiler.ml:783: | UnifyType.Ko msg -> (* 0 *) raise(Compile_error (lxm, msg)) -prof/lazyCompiler.ml:788: let res = if !Global.one_op_per_equation then (* 798 *) Split.node res else (* 0 *) res in -prof/licDump.ml:76: | Extern_const_eff (s,t,vopt) -> (* 0 *) (long s) ^ (string_of_const_eff_opt vopt) -prof/licDump.ml:77: | Enum_const_eff (s,t) -> (* 0 *) (long s) -prof/licDump.ml:78: | Struct_const_eff (fl, t) -> (* 0 *) ( -prof/licDump.ml:81: (* 0 *) (Ident.to_string id)^" = "^(string_of_const_eff veff) -prof/licDump.ml:93: | None -> (* 0 *) "" -prof/licDump.ml:94: | Some val_exp_eff -> (* 0 *) string_of_const_eff val_exp_eff -prof/licDump.ml:100: | External_type_eff i -> (* 0 *) long i -prof/licDump.ml:118: | Any -> (* 0 *) "a" -prof/licDump.ml:119: | Overload -> (* 0 *) "o" -prof/licDump.ml:233: | [] -> (* 0 *) "" -prof/licDump.ml:234: | [x] -> (* 0 *) string_of_type_eff x -prof/licDump.ml:235: | l -> (* 0 *) String.concat " * " (List.map string_of_type_eff l) -prof/licDump.ml:259: | TypeStaticArgEff (id, teff) -> (* 0 *) sprintf "%s" (string_of_type_eff teff) -prof/licDump.ml:261: (* 0 *) sprintf "%s" (string_of_node_key_rec opeff.node_key_eff) -prof/licDump.ml:267: | TypeStaticArgEff (id, teff) -> (* 0 *) sprintf "%s" (string_of_type_eff teff) -prof/licDump.ml:276: | None -> (* 0 *) None -prof/licDump.ml:288: fun x -> (* 0 *) (string_of_type_eff x.var_type_eff) ^ -prof/licDump.ml:371: | Some _ -> (* 0 *) idref -prof/licDump.ml:384: (* 0 *) (string_of_val_exp_eff ve1) ^ " | " ^ (string_of_val_exp_eff ve2) -prof/licDump.ml:430: (* 0 *) ("(" ^ str ^ ")") -prof/licDump.ml:440: | Some pn -> (* 0 *) Ident.string_of_idref idref -prof/licDump.ml:445: | STRUCT_anonymous -> (* 0 *) "") ^ -prof/licDump.ml:456: | SyntaxTreeCore.Base -> (* 0 *) "base" -prof/licDump.ml:509: | AbstractEff -> (* 0 *) [] -prof/licDump.ml:551: | AbstractEff -> (* 0 *) "" -prof/licDump.ml:553: (* 672 *) ((match neff.loclist_eff with None -> (* 0 *) "" | Some [] -> (* 174 *) "" -prof/licDump.ml:600:let node_error_string lxm nkey = (* 0 *) ( -prof/licDump.ml:607:let print_compile_node_error nkey lxm msg = (* 0 *) ( -prof/licDump.ml:613:let print_global_node_error lxm nkey msg = (* 0 *) ( -prof/lxm.ml:28:let cstart x = (* 0 *) (x._cstart) -prof/lxm.ml:29:let cend x = (* 0 *) (x._cend) -prof/lxm.ml:30:let file x = (* 0 *) x._file -prof/lxm.ml:31:let pragma x = (* 0 *) x._pragma -prof/main.ml:67: ( "--output-file", Arg.String(fun x -> (* 0 *) Global.outfile := x), "<file>" -prof/main.ml:69: ( "-o", Arg.String(fun x -> (* 0 *) Global.outfile := x), -prof/main.ml:72: ( "--node", Arg.String(fun x -> (* 0 *) Global.main_node := x), -prof/main.ml:75: ( "-n", Arg.String(fun x -> (* 0 *) Global.main_node := x), -prof/main.ml:83: (function x -> (* 0 *) Global.compile_all_items := true), -prof/main.ml:89: ( "--verbose", Arg.Unit (fun vl -> (* 0 *) Verbose.set_level 1 ), -prof/main.ml:92: ( "-v", Arg.Unit (fun vl -> (* 0 *) Verbose.set_level 1 ), -prof/main.ml:95: ( "--verbose-level", Arg.Int(fun vl -> (* 0 *) Verbose.set_level vl ), "<int>" -prof/main.ml:101: ( "--keep-nested-calls", Arg.Unit (fun _ -> (* 0 *) Global.one_op_per_equation := false), -prof/main.ml:106: ("-h", Arg.Unit (fun _ -> (* 0 *) (Arg.usage arg_list usage_msg; exit 0)), "" ); -prof/main.ml:108: ("--help", Arg.Unit (fun _ -> (* 0 *) (Arg.usage arg_list usage_msg; exit 0)), -prof/main.ml:146: with _ -> (* 0 *) print_string ("*** '"^infile^"': bad file name.\n"); exit 1 -prof/main.ml:168: (* 0 *) print_string ("old-style (un-packaged) lustre files can " ^ -prof/main.ml:192: if Sys.file_exists !Global.outfile then (* 0 *) Sys.remove !Global.outfile; -prof/main.ml:202: if (!Global.infiles = []) then (* 0 *) ( -prof/main.ml:210: (* 0 *) Some (Ident.idref_of_string !Global.main_node) -prof/main.ml:212: if !Global.outfile <> "" then (* 0 *) Global.oc := open_out !Global.outfile; -prof/main.ml:231: (* 0 *) prerr_string ( -prof/main.ml:235: (if List.length !Global.infiles > 1 then (* 0 *) "s " else (* 0 *) " ") ^ -prof/parserUtils.ml:132:let ternexp lxm op e1 e2 e3 = (* 0 *) CallByPos( {src = lxm ; it = op }, Oper [e1 ; e2; e3] ) -prof/parserUtils.ml:151: (* 0 *) print_string ("Parser.idref_of_lxm" ^(Lxm.str lxm)); -prof/parserUtils.ml:463: (* 0 *) CallByPos(flagit (IDENT_n (Ident.idref_of_string(istr))) lxm, -prof/predef.ml:67: | REAL2INT_n -> (* 0 *) "real2int" -prof/predef.ml:68: | INT2REAL_n -> (* 0 *) "int2real" -prof/predef.ml:89: | IUMINUS_n -> (* 0 *) "-" -prof/predef.ml:90: | IMINUS_n -> (* 0 *) "-" -prof/predef.ml:92: | ISLASH_n -> (* 0 *) "/" -prof/predef.ml:93: | ITIMES_n -> (* 0 *) "*" -prof/predef.ml:94: | RUMINUS_n -> (* 0 *) "-" -prof/predef.ml:95: | RMINUS_n -> (* 0 *) "-" -prof/predef.ml:96: | RPLUS_n -> (* 0 *) "+" -prof/predef.ml:97: | RSLASH_n -> (* 0 *) "/" -prof/predef.ml:98: | RTIMES_n -> (* 0 *) "*" -prof/predef.ml:113: | DIESE_n -> (* 0 *) "diese" -prof/predef.ml:120: | IMINUS_n -> (* 0 *) "iminus" -prof/predef.ml:122: | ISLASH_n -> (* 0 *) "idiv" -prof/predef.ml:123: | ITIMES_n -> (* 0 *) "itimes" -prof/predef.ml:124: | RUMINUS_n -> (* 0 *) "ruminus" -prof/predef.ml:125: | RMINUS_n -> (* 0 *) "rminus" -prof/predef.ml:126: | RPLUS_n -> (* 0 *) "plus" -prof/predef.ml:127: | RSLASH_n -> (* 0 *) "rdiv" -prof/predef.ml:128: | RTIMES_n -> (* 0 *) "rtimes" -prof/predef.ml:146: | "true" -> (* 0 *) TRUE_n -prof/predef.ml:147: | "false" -> (* 0 *) FALSE_n -prof/predef.ml:150: | "real2int" -> (* 0 *) REAL2INT_n -prof/predef.ml:151: | "int2real" -> (* 0 *) INT2REAL_n -prof/predef.ml:155: | "xor" -> (* 0 *) XOR_n -prof/predef.ml:156: | "impl" -> (* 0 *) IMPL_n -prof/predef.ml:158: | "neq" -> (* 0 *) NEQ_n -prof/predef.ml:159: | "lt" -> (* 0 *) LT_n -prof/predef.ml:161: | "gt" -> (* 0 *) GT_n -prof/predef.ml:162: | "gte" -> (* 0 *) GTE_n -prof/predef.ml:163: | "div" -> (* 0 *) DIV_n -prof/predef.ml:164: | "mod" -> (* 0 *) MOD_n -prof/predef.ml:168: | "nor" -> (* 0 *) NOR_n -prof/predef.ml:169: | "#" -> (* 0 *) DIESE_n -prof/predef.ml:170: | "diese" -> (* 0 *) DIESE_n -prof/predef.ml:173: | "uminus" -> (* 0 *) UMINUS_n -prof/predef.ml:174: | "minus" -> (* 0 *) MINUS_n -prof/predef.ml:176: | "slash" -> (* 0 *) SLASH_n -prof/predef.ml:177: | "times" -> (* 0 *) TIMES_n -prof/predef.ml:181: | "iminus" -> (* 0 *) IMINUS_n -prof/predef.ml:183: | "islash" -> (* 0 *) ISLASH_n -prof/predef.ml:184: | "itimes" -> (* 0 *) ITIMES_n -prof/predef.ml:186: | "ruminus" -> (* 0 *) RUMINUS_n -prof/predef.ml:187: | "rminus" -> (* 0 *) RMINUS_n -prof/predef.ml:188: | "rplus" -> (* 0 *) RPLUS_n -prof/predef.ml:189: | "rslash" -> (* 0 *) RSLASH_n -prof/predef.ml:190: | "rtimes" -> (* 0 *) RTIMES_n -prof/predefEvalConst.ml:16: (* 0 *) raise (EvalConst_error( -prof/predefEvalConst.ml:17: "type mismatch "^(if expect = "" then (* 0 *) "" else (* 0 *) (expect^" expected")))) -prof/predefEvalConst.ml:22: (* 0 *) raise (EvalConst_error( -prof/predefEvalConst.ml:24: (List.length v) (if List.length v>1 then (* 0 *) "s" else (* 0 *) "") expect)) -prof/predefEvalConst.ml:51: fun op -> fun ll -> (* 0 *) match List.flatten ll with -prof/predefEvalConst.ml:52: | [Real_const_eff v0; Real_const_eff v1] -> (* 0 *) [Real_const_eff (op v0 v1)] -prof/predefEvalConst.ml:61: fun op -> fun ll -> (* 0 *) match List.flatten ll with -prof/predefEvalConst.ml:62: | [Int_const_eff v0] -> (* 0 *) [Int_const_eff (op v0)] -prof/predefEvalConst.ml:66: fun op -> fun ll -> (* 0 *) match List.flatten ll with -prof/predefEvalConst.ml:67: | [Real_const_eff v0] -> (* 0 *) [Real_const_eff (op v0)] -prof/predefEvalConst.ml:82: (* 0 *) raise (EvalConst_error( -prof/predefEvalConst.ml:91: (* 0 *) raise (EvalConst_error( -prof/predefEvalConst.ml:100: fun op -> fun ll -> (* 0 *) match List.flatten ll with -prof/predefEvalConst.ml:101: | [Real_const_eff v0] -> (* 0 *) [Int_const_eff (op v0)] -prof/predefEvalConst.ml:105: fun op -> fun ll -> (* 0 *) match List.flatten ll with -prof/predefEvalConst.ml:106: | [Int_const_eff v0] -> (* 0 *) [Real_const_eff (op v0)] -prof/predefEvalConst.ml:137: | REAL2INT_n -> (* 0 *) fi_evaluator int_of_float ll -prof/predefEvalConst.ml:138: | INT2REAL_n -> (* 0 *) if_evaluator float_of_int ll -prof/predefEvalConst.ml:144: | NEQ_n -> (* 0 *) aab_evaluator (<>) ll -prof/predefEvalConst.ml:145: | LT_n -> (* 0 *) aab_evaluator (<) ll -prof/predefEvalConst.ml:146: | LTE_n -> (* 0 *) aab_evaluator (<=) ll -prof/predefEvalConst.ml:148: | GTE_n -> (* 0 *) aab_evaluator (>=) ll -prof/predefEvalConst.ml:157: | IUMINUS_n -> (* 0 *) ii_evaluator (fun x -> (* 0 *) -x) ll -prof/predefEvalConst.ml:158: | IMINUS_n -> (* 0 *) iii_evaluator (-) ll -prof/predefEvalConst.ml:159: | IPLUS_n -> (* 0 *) iii_evaluator (+) ll -prof/predefEvalConst.ml:160: | ISLASH_n -> (* 0 *) iii_evaluator (/) ll -prof/predefEvalConst.ml:161: | ITIMES_n -> (* 0 *) iii_evaluator ( * ) ll -prof/predefEvalConst.ml:162: | RUMINUS_n -> (* 0 *) ff_evaluator (fun x -> (* 0 *) -.x) ll -prof/predefEvalConst.ml:163: | RMINUS_n -> (* 0 *) fff_evaluator (-.) ll -prof/predefEvalConst.ml:164: | RPLUS_n -> (* 0 *) fff_evaluator (+.) ll -prof/predefEvalConst.ml:165: | RSLASH_n -> (* 0 *) fff_evaluator (/.) ll -prof/predefEvalConst.ml:166: | RTIMES_n -> (* 0 *) fff_evaluator ( *.) ll -prof/predefEvalConst.ml:167: | NOR_n -> (* 0 *) boolred_evaluator 0 ll -prof/predefEvalConst.ml:173: | BoolRed -> (* 0 *) boolred_evaluator 1 ll -prof/predefEvalType.ml:19: (* 0 *) let str_l = List.map LicDump.string_of_type_eff tel in -prof/predefEvalType.ml:23: (if expect = "" then (* 0 *) "" -prof/predefEvalType.ml:24: else (* 0 *) (" whereas\n*** type '" ^expect^"' was expected"))))) -prof/predefEvalType.ml:30: (if expect = "" then (* 0 *) "" -prof/predefEvalType.ml:32: (if msg = "" then (* 0 *) "" else (* 1 *) ("\n*** " ^ msg))))) -prof/predefEvalType.ml:36: (* 0 *) raise (EvalType_error( -prof/predefEvalType.ml:38: (List.length v) (if List.length v>1 then (* 0 *) "s" else (* 0 *) "") expect)) -prof/predefEvalType.ml:125: (* 0 *) match UnifyType.f [t1] [t2] with -prof/predefEvalType.ml:126: | Equal -> (* 0 *) (lti,lto) -prof/predefEvalType.ml:128: (* 0 *) (List.map (fun (id,tid) -> (* 0 *) id, subst_type t tid) lti, -prof/predefEvalType.ml:129: List.map (fun (id,tid) -> (* 0 *) id, subst_type t tid) lto) -prof/predefEvalType.ml:130: | Ko(msg) -> (* 0 *) raise (Compile_error(lxm, msg)) -prof/predefEvalType.ml:169: | _ -> (* 0 *) raise (Compile_error(lxm, "\n*** type error: 3 int were expected")) -prof/predefEvalType.ml:187: | REAL2INT_n -> (* 0 *) ri_profile -prof/predefEvalType.ml:188: | INT2REAL_n -> (* 0 *) ir_profile -prof/predefEvalType.ml:192: | RUMINUS_n -> (* 0 *) rr_profile -prof/predefEvalType.ml:196: | RMINUS_n | RPLUS_n | RTIMES_n | RSLASH_n -> (* 0 *) rrr_profile -prof/predefEvalType.ml:258: (* 0 *) (type_error (List.flatten [[Bool_type_eff]; t; e]) "bool*any*any") -prof/predefEvalType.ml:259: | x -> (* 0 *) (arity_error x "3") -prof/predefEvalType.ml:266: (* 93 *) acc | _ -> (* 0 *) (type_error [ceff] "bool") -prof/predefEvalType.ml:277: (* 0 *) arity_error [l] (string_of_int (List.length lti)) -prof/predefEvalType.ml:282: (* 0 *) type_error2 -prof/predefEvalType.ml:287: (* 0 *) type_error2 -prof/solveIdent.ml:77: | Some op -> (* 0 *) Predef_n (op,[]) -prof/solveIdent.ml:111: | EnumConst(id,te) -> (* 0 *) EnumConst(id,te) -prof/solveIdent.ml:119: | ArrayType(id,te,ve) -> (* 0 *) ArrayType(id,te, r_val_exp ve) -prof/split.ml:37: | CallByPosEff({ it = Eff.FBY }, _) -> (* 0 *) true -prof/split.ml:39: | CallByPosEff({ it = Eff.CURRENT }, _) -> (* 0 *) true -prof/symbolTab.ml:36: (* 0 *) raise (Compile_error(lxm, "unknown type (" ^ (Ident.to_string id)^")")) -prof/symbolTab.ml:41: (* 0 *) raise (Compile_error(lxm, "unknown type (" ^ (Ident.to_string id)^")")) -prof/symbolTab.ml:61: (* 0 *) raise (Global_error("Can not find node " ^ (Ident.to_string id)^ -prof/syntaxTab.ml:97: (* 0 *) print_string ("*** Can not find package '" ^ -prof/syntaxTab.ml:100: (fun pn pm -> (* 0 *) print_string ("\n***\t - '"^(Ident.pack_name_to_string pn)^ "'")) -prof/syntaxTab.ml:111: with Not_found -> (* 0 *) raise(Compile_error(lxm, "")) -prof/syntaxTab.ml:313: with Not_found -> (* 0 *) raise(Compile_error(lxm, "unknown package")) -prof/syntaxTab.ml:378: (* 0 *) print_string "*** not implemented.\n"; -prof/syntaxTab.ml:382: (* 0 *) print_string "*** not implemented.\n"; -prof/syntaxTab.ml:386: (* 0 *) print_string "*** not implemented.\n"; -prof/syntaxTab.ml:394: (* 0 *) let p = Verbose.print_string ~level:3 in -prof/syntaxTab.ml:400: (fun pm -> (* 0 *) p (SyntaxTree.pack_or_model_to_string pm); p "\n\t\t") -prof/syntaxTab.ml:406: (fun id _mi -> (* 0 *) p ((Ident.to_string id) ^ " ")) -prof/syntaxTab.ml:412: (fun pn pi -> (* 0 *) p ((Ident.pack_name_to_string pn) ^ " ")) -prof/syntaxTab.ml:418: (fun pn pm -> (* 0 *) p ((Ident.pack_name_to_string pn) ^ " ")) -prof/syntaxTree.ml:124: | LeftVar sflg -> (* 0 *) sflg.src -prof/syntaxTree.ml:125: | LeftField (x, _) -> (* 0 *) lexeme_of_left_part x -prof/syntaxTree.ml:126: | LeftArray (x, _) -> (* 0 *) lexeme_of_left_part x -prof/syntaxTree.ml:127: | LeftSlice (x, _) -> (* 0 *) lexeme_of_left_part x -prof/syntaxTree.ml:133: | NSPack pi -> (* 0 *) Ident.pack_name_to_string pi.it.pa_name ^ " (pack) " -prof/syntaxTree.ml:134: | NSModel mi -> (* 0 *) Ident.pack_name_to_string mi.it.mo_name ^ " (model) " -prof/unifyClock.ml:27: (* 1749 *) if List.mem_assoc i s then (* 0 *) s else (* 1749 *) (i,c)::s -prof/unifyType.ml:47: (* 1766 *) if l1 <> l2 then (* 0 *) Ko "\n*** incompatible structure" else -prof/unifyType.ml:107: | Ko(msg) -> (* 0 *) msg -prof/unifyType.ml:108: | Equal -> (* 0 *) "types are equals\n" -prof/unifyType.ml:109: | Unif t -> (* 0 *) "types are unifiable via " ^ (teff2str t) ^ "\n" -prof/uniqueOutput.ml:64: (* 0 *) let rec aux vds v acc = (* 0 *) match vds with -prof/uniqueOutput.ml:65: | VDS_def -> (* 0 *) acc -prof/uniqueOutput.ml:66: | VDS_undef -> (* 0 *) v::acc -prof/uniqueOutput.ml:68: (* 0 *) List.fold_left (fun acc (id,vds) -> (* 0 *) aux vds (v^"."^(id2str id)) acc) acc fl -prof/uniqueOutput.ml:69: | VDS_array(a) -> (* 0 *) fst -prof/uniqueOutput.ml:71: (fun (acc,i) vds -> (* 0 *) aux vds (v^"["^(int2str i) ^"]") acc, i+1) (acc,0) a) -prof/uniqueOutput.ml:83: (* 0 *) let msg = "\n*** Variable " ^ v ^ " is defined twice." in -prof/uniqueOutput.ml:186: (* 0 *) let msg = "\n*** Undefined variable(s): " ^ -prof/uniqueOutput.ml:201: (* 0 *) let msg = "\n*** Error; " ^(id2str v.var_name_eff) ^ -prof/uniqueOutput.ml:211: (* 0 *) let msg = "\n*** Undefined variable: " ^ (id2str v.var_name_eff) -prof/verbose.ml:34: (fun t -> (* 2837 *) if (!_level >= level) then (* 0 *) (print_string t; flush stdout) else (* 2837 *) ()) s +prof/compile.ml:31: if Verbose.get_level () > 2 then (* ocamlprof: 0 *) SyntaxTab.dump syntax_tab; +prof/compile.ml:38: (* ocamlprof: 0 *) let main_node_key = +prof/compile.ml:46: (* ocamlprof: 0 *) LazyCompiler.compile_all lzcomp +prof/compile.ml:48: (* ocamlprof: 0 *) ignore(LazyCompiler.node_check lzcomp main_node_key +prof/compile.ml:50: | None -> (* ocamlprof: 0 *) Lxm.dummy "" +prof/compile.ml:51: | Some pn -> (* ocamlprof: 0 *) Lxm.dummy (Ident.pack_name_to_string pn))) +prof/eff.ml:424: | On(cid1,_), On(cid2,_) -> (* ocamlprof: 0 *) cid1 = cid2 +prof/eff.ml:437: fun nkey -> (* ocamlprof: 0 *) (nkey, []) +prof/eff.ml:446: | Enum_type_eff(l,el) -> (* ocamlprof: 0 *) Enum_type_eff(l,el) +prof/eff.ml:463: | Struct_const_eff (fl, teff) -> (* ocamlprof: 0 *) teff +prof/errors.ml:123:let warning lxm msg = (* ocamlprof: 0 *) ( +prof/errors.ml:138:let print_internal_error fnme msg = (* ocamlprof: 0 *) ( +prof/evalClock.ml:139: | On(_,_), BaseEff -> (* ocamlprof: 0 *) None +prof/evalClock.ml:144: with _ -> (* ocamlprof: 0 *) is_a_sub_clock lxm s (id_sc,sc) (id_c,clk2) +prof/evalClock.ml:150: (* ocamlprof: 0 *) let s1,s2 = s in +prof/evalClock.ml:154: (* ocamlprof: 0 *) let s1,s2 = s in +prof/evalClock.ml:196: | id, On(v, ClockVar _) -> (* ocamlprof: 0 *) id, On(v, BaseEff) +prof/evalClock.ml:206: (* ocamlprof: 0 *) print_string "*** No entry for '"; +prof/evalClock.ml:243: (* ocamlprof: 0 *) raise (Compile_error(lxm, "\n*** can't eval constant: "^msg)) +prof/evalClock.ml:266: | [id, BaseEff] -> (* ocamlprof: 0 *) [id, BaseEff],s +prof/evalClock.ml:273: | Base -> (* ocamlprof: 0 *) BaseEff, BaseEff +prof/evalClock.ml:293: (* ocamlprof: 0 *) let msg = "\n*** clock error: '" ^ (ci2str (snd exp_clk)) ^ +prof/evalClock.ml:364: | ClockVar i -> (* ocamlprof: 0 *) ci +prof/evalConst.ml:26:let finish_me msg = (* ocamlprof: 0 *) print_string ("\n\tXXX evalConst.ml:"^msg^" -> finish me!\n") +prof/evalConst.ml:29: (* ocamlprof: 0 *) raise (EvalConst_error( +prof/evalConst.ml:45: (* ocamlprof: 0 *) let get_res (ix : int) = (* ocamlprof: 0 *) Array.get ctab (slice.se_first + ix*slice.se_step) in +prof/evalConst.ml:52: (* ocamlprof: 0 *) let expected_type = ref None in +prof/evalConst.ml:54: (* ocamlprof: 0 *) match op with +prof/evalConst.ml:55: | [x] -> (* ocamlprof: 0 *) ( +prof/evalConst.ml:59: | None -> (* ocamlprof: 0 *) expected_type := Some xtyp; x +prof/evalConst.ml:60: | Some t -> (* ocamlprof: 0 *) ( +prof/evalConst.ml:61: if (t = xtyp) then (* ocamlprof: 0 *) x else +prof/evalConst.ml:62: (* ocamlprof: 0 *) raise (EvalConst_error( +prof/evalConst.ml:70: (* ocamlprof: 0 *) raise (EvalConst_error("array of tuple not allowed")) +prof/evalConst.ml:74: | None -> (* ocamlprof: 0 *) raise (EvalConst_error("empty array")) +prof/evalConst.ml:75: | Some t -> (* ocamlprof: 0 *) Array_const_eff(res, t) +prof/evalConst.ml:86: (* ocamlprof: 0 *) ( +prof/evalConst.ml:89: Struct_type_eff (tnm, flst) -> (* ocamlprof: 0 *) ( +prof/evalConst.ml:91: let make_eff_field ((fn: Ident.t),((ft:Eff.type_),(fv:Eff.const option))) = (* ocamlprof: 0 *) ( +prof/evalConst.ml:95: (lxm, v) -> (* ocamlprof: 0 *) ( +prof/evalConst.ml:99: if (vt = ft) then (* ocamlprof: 0 *) (fn, v) (*ok*) +prof/evalConst.ml:100: else (* ocamlprof: 0 *) raise (Compile_error( +prof/evalConst.ml:109: ) with Not_found -> (* ocamlprof: 0 *) ( +prof/evalConst.ml:112: Some v -> (* ocamlprof: 0 *) (fn, v) (* ok : v correcte par construction *) +prof/evalConst.ml:114: (* ocamlprof: 0 *) raise (EvalConst_error( +prof/evalConst.ml:125: = (* ocamlprof: 0 *) raise(Compile_error( +prof/evalConst.ml:137: | _ -> (* ocamlprof: 0 *) raise (EvalConst_error( +prof/evalConst.ml:175: | SyntaxTreeCore.CallByName ({it=nmop; src=lxm}, nmargs ) -> (* ocamlprof: 0 *) ( +prof/evalConst.ml:178: (* ocamlprof: 0 *) raise (Compile_error(lxm, "\n*** can't eval constant: "^msg)) +prof/evalConst.ml:206: | WITH_n(a0,a1,a2) -> (* ocamlprof: 0 *) ( +prof/evalConst.ml:208: [ Bool_const_eff true] -> (* ocamlprof: 0 *) rec_eval_const a1 +prof/evalConst.ml:209: | [ Bool_const_eff false] -> (* ocamlprof: 0 *) rec_eval_const a2 +prof/evalConst.ml:210: | x -> (* ocamlprof: 0 *) type_error_const x "bool" +prof/evalConst.ml:213: | TUPLE_n -> (* ocamlprof: 0 *) ( List.flatten (List.map rec_eval_const args)) +prof/evalConst.ml:225: (* ocamlprof: 0 *) raise (EvalConst_error("array of tuple not allowed")) +prof/evalConst.ml:227: EvalArray_error msg -> (* ocamlprof: 0 *) raise(EvalConst_error msg) +prof/evalConst.ml:229: | _ -> (* ocamlprof: 0 *) raise(EvalConst_error +prof/evalConst.ml:233: | CONCAT_n -> (* ocamlprof: 0 *) ( +prof/evalConst.ml:237: [Array_const_eff (v1, t1)]] -> (* ocamlprof: 0 *) ( +prof/evalConst.ml:239: (* ocamlprof: 0 *) [Array_const_eff (Array.append v0 v1, t0)] +prof/evalConst.ml:241: (* ocamlprof: 0 *) raise(EvalConst_error( +prof/evalConst.ml:249: (* ocamlprof: 0 *) raise(EvalConst_error( +prof/evalConst.ml:251: | _ -> (* ocamlprof: 0 *) raise(EvalConst_error +prof/evalConst.ml:255: | ARRAY_n -> (* ocamlprof: 0 *) ( +prof/evalConst.ml:262: | [Array_const_eff (elts, typelts)] -> (* ocamlprof: 0 *) ( +prof/evalConst.ml:267: with EvalArray_error msg -> (* ocamlprof: 0 *) raise(EvalConst_error msg) +prof/evalConst.ml:269: | _ -> (* ocamlprof: 0 *) type_error_const effargs "some array" +prof/evalConst.ml:271: | ARRAY_SLICE_n sl -> (* ocamlprof: 0 *) ( +prof/evalConst.ml:274: | [Array_const_eff (l, t)] -> (* ocamlprof: 0 *) (l, t) +prof/evalConst.ml:275: | x -> (* ocamlprof: 0 *) type_error_const x "some array" +prof/evalConst.ml:284: EvalArray_error msg -> (* ocamlprof: 0 *) raise(EvalConst_error msg) +prof/evalConst.ml:288: (* ocamlprof: 0 *) let ceff_list = List.flatten (List.map rec_eval_const args) in +prof/evalConst.ml:290: | [Struct_const_eff (flst, typ)] -> (* ocamlprof: 0 *) ( +prof/evalConst.ml:293: (* ocamlprof: 0 *) raise (EvalConst_error +prof/evalConst.ml:298: | [x] -> (* ocamlprof: 0 *) type_error_const [x] "struct type" +prof/evalConst.ml:299: | x -> (* ocamlprof: 0 *) arity_error_const x "1" +prof/evalConst.ml:302: | CALL_n _ -> (* ocamlprof: 0 *) not_evaluable_construct "node call" +prof/evalConst.ml:303: | MERGE_n _ -> (* ocamlprof: 0 *) not_evaluable_construct "merge" +prof/evalConst.ml:304: | WHEN_n _ -> (* ocamlprof: 0 *) not_evaluable_construct "when" +prof/evalConst.ml:305: | FBY_n -> (* ocamlprof: 0 *) not_evaluable_construct "fby" +prof/evalConst.ml:306: | ARROW_n -> (* ocamlprof: 0 *) not_evaluable_construct "->" +prof/evalConst.ml:307: | CURRENT_n -> (* ocamlprof: 0 *) not_evaluable_construct "current" +prof/evalConst.ml:308: | PRE_n -> (* ocamlprof: 0 *) not_evaluable_construct "pre" +prof/evalConst.ml:317: (* ocamlprof: 0 *) not_evaluable_construct (op2string op) +prof/evalConst.ml:331: = (* ocamlprof: 0 *) ( +prof/evalConst.ml:334: (* ocamlprof: 0 *) finish_me "anonymous struct"; +prof/evalConst.ml:337: | STRUCT_n opid -> (* ocamlprof: 0 *) ( +prof/evalConst.ml:341: (* ocamlprof: 0 *) if +prof/evalConst.ml:344: (* ocamlprof: 0 *) raise(EvalConst_error( +prof/evalConst.ml:350: (* ocamlprof: 0 *) let v = rec_eval_const pexp in +prof/evalConst.ml:352: | [x] -> (* ocamlprof: 0 *) Hashtbl.add arg_tab pid.it (pid.src, x) +prof/evalConst.ml:354: (* ocamlprof: 0 *) raise( +prof/evalConst.ml:367: (* ocamlprof: 0 *) raise(EvalConst_error( +prof/evalConst.ml:398: (* ocamlprof: 0 *) raise(EvalArray_error(sprintf "bad array size %d" sz)) +prof/evalConst.ml:400: (* ocamlprof: 0 *) raise(EvalArray_error(sprintf "bad array size, int expected but get %s" +prof/evalConst.ml:403: (* ocamlprof: 0 *) raise(EvalArray_error(sprintf "bad array size, int expected, not a tuple")) +prof/evalConst.ml:431: (* ocamlprof: 0 *) raise(EvalArray_error("The extern const " ^ (Ident.string_of_long id) ^ +prof/evalConst.ml:434: | [x] -> (* ocamlprof: 0 *) raise(EvalArray_error(sprintf +prof/evalConst.ml:438: | _ -> (* ocamlprof: 0 *) raise(EvalArray_error( +prof/evalConst.ml:444: (* ocamlprof: 0 *) raise (Compile_error(lxm, "\n*** can't eval constant: "^msg)) +prof/evalConst.ml:448: else (* ocamlprof: 0 *) raise(EvalArray_error( +prof/evalConst.ml:477: | [x] -> (* ocamlprof: 0 *) raise(EvalArray_error( +prof/evalConst.ml:480: | _ -> (* ocamlprof: 0 *) raise(EvalArray_error( +prof/evalConst.ml:483: | None -> (* ocamlprof: 25 *) if (first_ix <= last_ix) then (* ocamlprof: 25 *) 1 else (* ocamlprof: 0 *) -1 +prof/evalConst.ml:490: (* ocamlprof: 0 *) let msg = sprintf "bad array slice [%d..%d] step %d" first_ix last_ix step in +prof/evalConst.ml:498: (* ocamlprof: 0 *) warning lxm (sprintf "last index out of slice [%d..%d step %d]" +prof/evalConst.ml:512: (* ocamlprof: 0 *) raise (Compile_error(lxm, "\n*** can't eval constant: "^msg)) +prof/evalType.ml:32:let finish_me msg = (* ocamlprof: 0 *) print_string ("\n\tXXX evalType.ml:"^msg^" -> finish me!\n") +prof/evalType.ml:40: (* ocamlprof: 0 *) raise (Compile_error(lxm, "type error: "^msg)) +prof/evalType.ml:45: (* ocamlprof: 0 *) raise (Compile_error(lxm, "\n*** can't eval constant: "^msg)) +prof/evalType.ml:79: (* ocamlprof: 0 *) raise (EvalType_error( +prof/evalType.ml:87: | UnifyType.Ko msg -> (* ocamlprof: 0 *) raise (Compile_error(lxm, msg)) +prof/evalType.ml:100: | Eff.CONCAT -> (* ocamlprof: 0 *) ( +prof/evalType.ml:103: (* ocamlprof: 0 *) let teff = +prof/evalType.ml:105: | UnifyType.Equal -> (* ocamlprof: 0 *) teff1 +prof/evalType.ml:106: | UnifyType.Unif subst -> (* ocamlprof: 0 *) subst_type subst teff1 +prof/evalType.ml:107: | UnifyType.Ko msg -> (* ocamlprof: 0 *) raise (Compile_error(lxm, msg)) +prof/evalType.ml:111: (* ocamlprof: 0 *) raise(EvalType_error(sprintf "arity error: 2 expected instead of %d" +prof/evalType.ml:120: (* ocamlprof: 0 *) raise (EvalType_error +prof/evalType.ml:125: | [x] -> (* ocamlprof: 0 *) type_error [x] "struct type" +prof/evalType.ml:126: | x -> (* ocamlprof: 0 *) arity_error x "1" +prof/evalType.ml:146: (* ocamlprof: 0 *) raise(EvalType_error( +prof/evalType.ml:160: | Base -> (* ocamlprof: 0 *) () +prof/evalType.ml:175: | _ -> (* ocamlprof: 0 *) raise(EvalType_error("arity error (1 arg expected)")) +prof/evalType.ml:182: (* ocamlprof: 0 *) raise(EvalType_error("type mismatch. ")) +prof/evalType.ml:183: | _ -> (* ocamlprof: 0 *) raise(EvalType_error("arity error (2 args expected)")) +prof/evalType.ml:190: | _ -> (* ocamlprof: 0 *) raise(EvalType_error("arity error (1 arg expected)")) +prof/evalType.ml:209: (* ocamlprof: 0 *) finish_me "anonymous struct not yet supported"; +prof/expandPack.ml:22: (* ocamlprof: 0 *) let msg = Printf.sprintf "bad pack instance: model %s undeclared" +prof/expandPack.ml:46: (* ocamlprof: 0 *) let msg = Printf.sprintf +prof/expandPack.ml:57: (* ocamlprof: 0 *) Lxm.flagit (Named_type_exp idr) arg.src +prof/expandPack.ml:59: | _ -> (* ocamlprof: 0 *) instance_error () +prof/expandPack.ml:71: (* ocamlprof: 0 *) ParserUtils.leafexp arg.src (IDENT_n idr) +prof/expandPack.ml:73: | _ -> (* ocamlprof: 0 *) instance_error () +prof/expandPack.ml:87: | _ -> (* ocamlprof: 0 *) instance_error () +prof/expandPack.ml:113: | None -> (* ocamlprof: 0 *) acc +prof/expandPack.ml:116: if List.mem p_flagged acc then (* ocamlprof: 0 *) acc else (* ocamlprof: 3 *) p_flagged::acc +prof/expandPack.ml:129: (* ocamlprof: 0 *) raise(Compile_error +prof/expandPack.ml:152: | None -> (* ocamlprof: 0 *) None +prof/expandPack.ml:161: ) with Invalid_argument _ -> (* ocamlprof: 0 *) ( +prof/getEff.ml:29: with EvalConst.EvalArray_error msg -> (* ocamlprof: 0 *) raise(GetEffType_error msg) +prof/getEff.ml:32: (* ocamlprof: 0 *) raise (Compile_error(texp.src, "can't eval type: "^msg)) +prof/getEff.ml:53: (* ocamlprof: 0 *) raise (Compile_error(lxm, +prof/getEff.ml:63: (* ocamlprof: 0 *) let msg = "type mismatch: \n***\t'" +prof/getEff.ml:115: (* ocamlprof: 0 *) let ceff = node_id_solver.id2const idref sa.src in +prof/getEff.ml:119: (* ocamlprof: 0 *) let teff = node_id_solver.id2type idref sa.src in +prof/getEff.ml:123: (* ocamlprof: 0 *) let sargs = [] in +prof/getEff.ml:141: (* ocamlprof: 0 *) let neff = node node_id_solver ne in +prof/getEff.ml:202: (* ocamlprof: 0 *) raise (Compile_error(id.src, "bad field name in structure")) +prof/getEff.ml:204: | _ -> (* ocamlprof: 0 *) raise (Compile_error(id.src, "a structure was expected")) +prof/getEff.ml:215: | _ -> (* ocamlprof: 0 *) raise (Compile_error(vef.src, "an array was expected")) +prof/getEff.ml:226: | _ -> (* ocamlprof: 0 *) raise (Compile_error(sif.src, "an array was expected")) +prof/getEff.ml:246: | STRUCT_anonymous_n -> (* ocamlprof: 0 *) STRUCT_anonymous +prof/getEff.ml:254: | Some pn -> (* ocamlprof: 0 *) STRUCT (pn, idref) +prof/getEff.ml:267: | StaticArgNode _ -> (* ocamlprof: 0 *) raise (Compile_error(lxm, "a constant was expected")) +prof/getEff.ml:276: | StaticArgNode(CALL_n ne) -> (* ocamlprof: 0 *) node id_solver ne +prof/getEff.ml:283: | StaticArgConst _ -> (* ocamlprof: 0 *) raise (Compile_error(lxm, "a node was expected")) +prof/getEff.ml:304: (* ocamlprof: 0 *) raise (Compile_error(lxm, "bad arguments number for array iterator")) +prof/getEff.ml:357: | CONCAT_n -> (* ocamlprof: 0 *) Eff.CONCAT +prof/getEff.ml:368: | WHEN_n Base -> (* ocamlprof: 0 *) Eff.WHEN Base +prof/getEff.ml:373: | Some _ -> (* ocamlprof: 0 *) cc +prof/getEff.ml:391: (* ocamlprof: 0 *) raise (Compile_error( +prof/getEff.ml:410: (* ocamlprof: 0 *) raise (Compile_error( +prof/getEff.ml:429: | MERGE_n(id, idl) -> (* ocamlprof: 0 *) Eff.MERGE(id, idl) +prof/getEff.ml:449: (* ocamlprof: 0 *) let msg = "type mismatch: \n\tthe content of the assertion is of type " +prof/getEff.ml:467: (* ocamlprof: 0 *) let msg = "clock error: assert should be on the base clock, "^ +prof/ident.ml:105: | _ -> (* ocamlprof: 0 *) raise (Failure ("idref_of_string: \""^s^"\" not a proper ident")) +prof/ident.ml:111: [i] -> (* ocamlprof: 0 *) !dft_pack_name, i +prof/ident.ml:113: | _ -> (* ocamlprof: 0 *) raise (Failure ("idref_of_string: \""^s^"\" not a proper ident")) +prof/ident.ml:130: (* ocamlprof: 0 *) match pack_of_idref idr with +prof/ident.ml:131: Some p -> (* ocamlprof: 0 *) (p, name_of_idref idr) +prof/ident.ml:132: | None -> (* ocamlprof: 0 *) (!dft_pack_name, name_of_idref idr) +prof/lazyCompiler.ml:10:let finish_me msg = (* ocamlprof: 0 *) print_string ("\n\tXXX LazyCompiler:"^msg^" -> finish me!\n") +prof/lazyCompiler.ml:22: | [] -> (* ocamlprof: 0 *) "nostack" +prof/lazyCompiler.ml:158: (* ocamlprof: 0 *) print_string ("*** " ^ (Ident.string_of_long lid) ^ "???\n" ^ +prof/lazyCompiler.ml:196: | Eff.Incorrect -> (* ocamlprof: 0 *) raise (BadCheckRef_error) +prof/lazyCompiler.ml:200: lookup_x_eff "type ref " (fun k -> (* ocamlprof: 0 *) k) +prof/lazyCompiler.ml:240: (* ocamlprof: 0 *) (raise (Compile_error(lxm,"unbounded " ^ x_label ^ " ident"))) +prof/lazyCompiler.ml:304: (* ocamlprof: 0 *) raise(Compile_error ( +prof/lazyCompiler.ml:324: (* ocamlprof: 0 *) raise(Compile_error (const_def.src, " constant values mismatch")) +prof/lazyCompiler.ml:328: (* ocamlprof: 0 *) raise(Compile_error ( +prof/lazyCompiler.ml:345: (* ocamlprof: 0 *) raise(Compile_error ( +prof/lazyCompiler.ml:386: (* ocamlprof: 0 *) raise +prof/lazyCompiler.ml:394: (* ocamlprof: 0 *) raise (Compile_error(field_def.src, +prof/lazyCompiler.ml:410: (* ocamlprof: 0 *) if (root = type_name) then (* ocamlprof: 0 *) recursion_error type_def.src stack else +prof/lazyCompiler.ml:411: (* ocamlprof: 0 *) raise ( Recursion_error (root, ("type ref "^(Lxm.details lxm))::stack)) +prof/lazyCompiler.ml:456: (* ocamlprof: 0 *) raise +prof/lazyCompiler.ml:464: | _::_ -> (* ocamlprof: 0 *) raise (Compile_error(const_def.src, +prof/lazyCompiler.ml:498: (* ocamlprof: 0 *) raise(Compile_error (node_def.src, msg_prefix ^ " ??? ")) +prof/lazyCompiler.ml:503: (* ocamlprof: 0 *) let msg = msg_prefix ^ "bad input profile. \n*** " ^ +prof/lazyCompiler.ml:513: (* ocamlprof: 0 *) let msg = msg_prefix ^ "bad output profile. \n*** " ^ +prof/lazyCompiler.ml:522: (* ocamlprof: 0 *) raise(Compile_error (node_def.src, msg_prefix ^ " node or function?")) +prof/lazyCompiler.ml:526: (* ocamlprof: 0 *) raise(Compile_error (node_def.src, msg_prefix ^ "safe or unsafe?")) +prof/lazyCompiler.ml:532: (* ocamlprof: 0 *) raise(Compile_error (node_def.src, msg_prefix ^ "abstract or not?")) +prof/lazyCompiler.ml:623: (* ocamlprof: 0 *) aux acc tail +prof/lazyCompiler.ml:632: (* ocamlprof: 0 *) raise ( +prof/lazyCompiler.ml:736: (* ocamlprof: 0 *) raise (Compile_error (lxm, "Can not alias 'nor' nor '#', sorry")) +prof/lazyCompiler.ml:763: (* ocamlprof: 0 *) raise (Compile_error (lxm, "can not alias this operator, sorry")) +prof/lazyCompiler.ml:780: | UnifyType.Ko msg -> (* ocamlprof: 0 *) raise(Compile_error(lxm, msg)) +prof/lazyCompiler.ml:783: | UnifyType.Ko msg -> (* ocamlprof: 0 *) raise(Compile_error (lxm, msg)) +prof/lazyCompiler.ml:788: let res = if !Global.one_op_per_equation then (* ocamlprof: 798 *) Split.node res else (* ocamlprof: 0 *) res in +prof/licDump.ml:76: | Extern_const_eff (s,t,vopt) -> (* ocamlprof: 0 *) (long s) ^ (string_of_const_eff_opt vopt) +prof/licDump.ml:77: | Enum_const_eff (s,t) -> (* ocamlprof: 0 *) (long s) +prof/licDump.ml:78: | Struct_const_eff (fl, t) -> (* ocamlprof: 0 *) ( +prof/licDump.ml:81: (* ocamlprof: 0 *) (Ident.to_string id)^" = "^(string_of_const_eff veff) +prof/licDump.ml:93: | None -> (* ocamlprof: 0 *) "" +prof/licDump.ml:94: | Some val_exp_eff -> (* ocamlprof: 0 *) string_of_const_eff val_exp_eff +prof/licDump.ml:100: | External_type_eff i -> (* ocamlprof: 0 *) long i +prof/licDump.ml:118: | Any -> (* ocamlprof: 0 *) "a" +prof/licDump.ml:119: | Overload -> (* ocamlprof: 0 *) "o" +prof/licDump.ml:233: | [] -> (* ocamlprof: 0 *) "" +prof/licDump.ml:234: | [x] -> (* ocamlprof: 0 *) string_of_type_eff x +prof/licDump.ml:235: | l -> (* ocamlprof: 0 *) String.concat " * " (List.map string_of_type_eff l) +prof/licDump.ml:259: | TypeStaticArgEff (id, teff) -> (* ocamlprof: 0 *) sprintf "%s" (string_of_type_eff teff) +prof/licDump.ml:261: (* ocamlprof: 0 *) sprintf "%s" (string_of_node_key_rec opeff.node_key_eff) +prof/licDump.ml:267: | TypeStaticArgEff (id, teff) -> (* ocamlprof: 0 *) sprintf "%s" (string_of_type_eff teff) +prof/licDump.ml:276: | None -> (* ocamlprof: 0 *) None +prof/licDump.ml:288: fun x -> (* ocamlprof: 0 *) (string_of_type_eff x.var_type_eff) ^ +prof/licDump.ml:371: | Some _ -> (* ocamlprof: 0 *) idref +prof/licDump.ml:384: (* ocamlprof: 0 *) (string_of_val_exp_eff ve1) ^ " | " ^ (string_of_val_exp_eff ve2) +prof/licDump.ml:430: (* ocamlprof: 0 *) ("(" ^ str ^ ")") +prof/licDump.ml:440: | Some pn -> (* ocamlprof: 0 *) Ident.string_of_idref idref +prof/licDump.ml:445: | STRUCT_anonymous -> (* ocamlprof: 0 *) "") ^ +prof/licDump.ml:456: | SyntaxTreeCore.Base -> (* ocamlprof: 0 *) "base" +prof/licDump.ml:509: | AbstractEff -> (* ocamlprof: 0 *) [] +prof/licDump.ml:551: | AbstractEff -> (* ocamlprof: 0 *) "" +prof/licDump.ml:553: (* ocamlprof: 672 *) ((match neff.loclist_eff with None -> (* ocamlprof: 0 *) "" | Some [] -> (* ocamlprof: 174 *) "" +prof/licDump.ml:600:let node_error_string lxm nkey = (* ocamlprof: 0 *) ( +prof/licDump.ml:607:let print_compile_node_error nkey lxm msg = (* ocamlprof: 0 *) ( +prof/licDump.ml:613:let print_global_node_error lxm nkey msg = (* ocamlprof: 0 *) ( +prof/lxm.ml:28:let cstart x = (* ocamlprof: 0 *) (x._cstart) +prof/lxm.ml:29:let cend x = (* ocamlprof: 0 *) (x._cend) +prof/lxm.ml:30:let file x = (* ocamlprof: 0 *) x._file +prof/lxm.ml:31:let pragma x = (* ocamlprof: 0 *) x._pragma +prof/main.ml:67: ( "--output-file", Arg.String(fun x -> (* ocamlprof: 0 *) Global.outfile := x), "<file>" +prof/main.ml:69: ( "-o", Arg.String(fun x -> (* ocamlprof: 0 *) Global.outfile := x), +prof/main.ml:72: ( "--node", Arg.String(fun x -> (* ocamlprof: 0 *) Global.main_node := x), +prof/main.ml:75: ( "-n", Arg.String(fun x -> (* ocamlprof: 0 *) Global.main_node := x), +prof/main.ml:83: (function x -> (* ocamlprof: 0 *) Global.compile_all_items := true), +prof/main.ml:89: ( "--verbose", Arg.Unit (fun vl -> (* ocamlprof: 0 *) Verbose.set_level 1 ), +prof/main.ml:92: ( "-v", Arg.Unit (fun vl -> (* ocamlprof: 0 *) Verbose.set_level 1 ), +prof/main.ml:95: ( "--verbose-level", Arg.Int(fun vl -> (* ocamlprof: 0 *) Verbose.set_level vl ), "<int>" +prof/main.ml:101: ( "--keep-nested-calls", Arg.Unit (fun _ -> (* ocamlprof: 0 *) Global.one_op_per_equation := false), +prof/main.ml:106: ("-h", Arg.Unit (fun _ -> (* ocamlprof: 0 *) (Arg.usage arg_list usage_msg; exit 0)), "" ); +prof/main.ml:108: ("--help", Arg.Unit (fun _ -> (* ocamlprof: 0 *) (Arg.usage arg_list usage_msg; exit 0)), +prof/main.ml:146: with _ -> (* ocamlprof: 0 *) print_string ("*** '"^infile^"': bad file name.\n"); exit 1 +prof/main.ml:168: (* ocamlprof: 0 *) print_string ("old-style (un-packaged) lustre files can " ^ +prof/main.ml:192: if Sys.file_exists !Global.outfile then (* ocamlprof: 0 *) Sys.remove !Global.outfile; +prof/main.ml:202: if (!Global.infiles = []) then (* ocamlprof: 0 *) ( +prof/main.ml:210: (* ocamlprof: 0 *) Some (Ident.idref_of_string !Global.main_node) +prof/main.ml:212: if !Global.outfile <> "" then (* ocamlprof: 0 *) Global.oc := open_out !Global.outfile; +prof/main.ml:231: (* ocamlprof: 0 *) prerr_string ( +prof/main.ml:235: (if List.length !Global.infiles > 1 then (* ocamlprof: 0 *) "s " else (* ocamlprof: 0 *) " ") ^ +prof/parserUtils.ml:132:let ternexp lxm op e1 e2 e3 = (* ocamlprof: 0 *) CallByPos( {src = lxm ; it = op }, Oper [e1 ; e2; e3] ) +prof/parserUtils.ml:151: (* ocamlprof: 0 *) print_string ("Parser.idref_of_lxm" ^(Lxm.str lxm)); +prof/parserUtils.ml:463: (* ocamlprof: 0 *) CallByPos(flagit (IDENT_n (Ident.idref_of_string(istr))) lxm, +prof/predef.ml:67: | REAL2INT_n -> (* ocamlprof: 0 *) "real2int" +prof/predef.ml:68: | INT2REAL_n -> (* ocamlprof: 0 *) "int2real" +prof/predef.ml:89: | IUMINUS_n -> (* ocamlprof: 0 *) "-" +prof/predef.ml:90: | IMINUS_n -> (* ocamlprof: 0 *) "-" +prof/predef.ml:92: | ISLASH_n -> (* ocamlprof: 0 *) "/" +prof/predef.ml:93: | ITIMES_n -> (* ocamlprof: 0 *) "*" +prof/predef.ml:94: | RUMINUS_n -> (* ocamlprof: 0 *) "-" +prof/predef.ml:95: | RMINUS_n -> (* ocamlprof: 0 *) "-" +prof/predef.ml:96: | RPLUS_n -> (* ocamlprof: 0 *) "+" +prof/predef.ml:97: | RSLASH_n -> (* ocamlprof: 0 *) "/" +prof/predef.ml:98: | RTIMES_n -> (* ocamlprof: 0 *) "*" +prof/predef.ml:113: | DIESE_n -> (* ocamlprof: 0 *) "diese" +prof/predef.ml:120: | IMINUS_n -> (* ocamlprof: 0 *) "iminus" +prof/predef.ml:122: | ISLASH_n -> (* ocamlprof: 0 *) "idiv" +prof/predef.ml:123: | ITIMES_n -> (* ocamlprof: 0 *) "itimes" +prof/predef.ml:124: | RUMINUS_n -> (* ocamlprof: 0 *) "ruminus" +prof/predef.ml:125: | RMINUS_n -> (* ocamlprof: 0 *) "rminus" +prof/predef.ml:126: | RPLUS_n -> (* ocamlprof: 0 *) "plus" +prof/predef.ml:127: | RSLASH_n -> (* ocamlprof: 0 *) "rdiv" +prof/predef.ml:128: | RTIMES_n -> (* ocamlprof: 0 *) "rtimes" +prof/predef.ml:146: | "true" -> (* ocamlprof: 0 *) TRUE_n +prof/predef.ml:147: | "false" -> (* ocamlprof: 0 *) FALSE_n +prof/predef.ml:150: | "real2int" -> (* ocamlprof: 0 *) REAL2INT_n +prof/predef.ml:151: | "int2real" -> (* ocamlprof: 0 *) INT2REAL_n +prof/predef.ml:155: | "xor" -> (* ocamlprof: 0 *) XOR_n +prof/predef.ml:156: | "impl" -> (* ocamlprof: 0 *) IMPL_n +prof/predef.ml:158: | "neq" -> (* ocamlprof: 0 *) NEQ_n +prof/predef.ml:159: | "lt" -> (* ocamlprof: 0 *) LT_n +prof/predef.ml:161: | "gt" -> (* ocamlprof: 0 *) GT_n +prof/predef.ml:162: | "gte" -> (* ocamlprof: 0 *) GTE_n +prof/predef.ml:163: | "div" -> (* ocamlprof: 0 *) DIV_n +prof/predef.ml:164: | "mod" -> (* ocamlprof: 0 *) MOD_n +prof/predef.ml:168: | "nor" -> (* ocamlprof: 0 *) NOR_n +prof/predef.ml:169: | "#" -> (* ocamlprof: 0 *) DIESE_n +prof/predef.ml:170: | "diese" -> (* ocamlprof: 0 *) DIESE_n +prof/predef.ml:173: | "uminus" -> (* ocamlprof: 0 *) UMINUS_n +prof/predef.ml:174: | "minus" -> (* ocamlprof: 0 *) MINUS_n +prof/predef.ml:176: | "slash" -> (* ocamlprof: 0 *) SLASH_n +prof/predef.ml:177: | "times" -> (* ocamlprof: 0 *) TIMES_n +prof/predef.ml:181: | "iminus" -> (* ocamlprof: 0 *) IMINUS_n +prof/predef.ml:183: | "islash" -> (* ocamlprof: 0 *) ISLASH_n +prof/predef.ml:184: | "itimes" -> (* ocamlprof: 0 *) ITIMES_n +prof/predef.ml:186: | "ruminus" -> (* ocamlprof: 0 *) RUMINUS_n +prof/predef.ml:187: | "rminus" -> (* ocamlprof: 0 *) RMINUS_n +prof/predef.ml:188: | "rplus" -> (* ocamlprof: 0 *) RPLUS_n +prof/predef.ml:189: | "rslash" -> (* ocamlprof: 0 *) RSLASH_n +prof/predef.ml:190: | "rtimes" -> (* ocamlprof: 0 *) RTIMES_n +prof/predefEvalConst.ml:16: (* ocamlprof: 0 *) raise (EvalConst_error( +prof/predefEvalConst.ml:17: "type mismatch "^(if expect = "" then (* ocamlprof: 0 *) "" else (* ocamlprof: 0 *) (expect^" expected")))) +prof/predefEvalConst.ml:22: (* ocamlprof: 0 *) raise (EvalConst_error( +prof/predefEvalConst.ml:24: (List.length v) (if List.length v>1 then (* ocamlprof: 0 *) "s" else (* ocamlprof: 0 *) "") expect)) +prof/predefEvalConst.ml:51: fun op -> fun ll -> (* ocamlprof: 0 *) match List.flatten ll with +prof/predefEvalConst.ml:52: | [Real_const_eff v0; Real_const_eff v1] -> (* ocamlprof: 0 *) [Real_const_eff (op v0 v1)] +prof/predefEvalConst.ml:61: fun op -> fun ll -> (* ocamlprof: 0 *) match List.flatten ll with +prof/predefEvalConst.ml:62: | [Int_const_eff v0] -> (* ocamlprof: 0 *) [Int_const_eff (op v0)] +prof/predefEvalConst.ml:66: fun op -> fun ll -> (* ocamlprof: 0 *) match List.flatten ll with +prof/predefEvalConst.ml:67: | [Real_const_eff v0] -> (* ocamlprof: 0 *) [Real_const_eff (op v0)] +prof/predefEvalConst.ml:82: (* ocamlprof: 0 *) raise (EvalConst_error( +prof/predefEvalConst.ml:91: (* ocamlprof: 0 *) raise (EvalConst_error( +prof/predefEvalConst.ml:100: fun op -> fun ll -> (* ocamlprof: 0 *) match List.flatten ll with +prof/predefEvalConst.ml:101: | [Real_const_eff v0] -> (* ocamlprof: 0 *) [Int_const_eff (op v0)] +prof/predefEvalConst.ml:105: fun op -> fun ll -> (* ocamlprof: 0 *) match List.flatten ll with +prof/predefEvalConst.ml:106: | [Int_const_eff v0] -> (* ocamlprof: 0 *) [Real_const_eff (op v0)] +prof/predefEvalConst.ml:137: | REAL2INT_n -> (* ocamlprof: 0 *) fi_evaluator int_of_float ll +prof/predefEvalConst.ml:138: | INT2REAL_n -> (* ocamlprof: 0 *) if_evaluator float_of_int ll +prof/predefEvalConst.ml:144: | NEQ_n -> (* ocamlprof: 0 *) aab_evaluator (<>) ll +prof/predefEvalConst.ml:145: | LT_n -> (* ocamlprof: 0 *) aab_evaluator (<) ll +prof/predefEvalConst.ml:146: | LTE_n -> (* ocamlprof: 0 *) aab_evaluator (<=) ll +prof/predefEvalConst.ml:148: | GTE_n -> (* ocamlprof: 0 *) aab_evaluator (>=) ll +prof/predefEvalConst.ml:157: | IUMINUS_n -> (* ocamlprof: 0 *) ii_evaluator (fun x -> (* ocamlprof: 0 *) -x) ll +prof/predefEvalConst.ml:158: | IMINUS_n -> (* ocamlprof: 0 *) iii_evaluator (-) ll +prof/predefEvalConst.ml:159: | IPLUS_n -> (* ocamlprof: 0 *) iii_evaluator (+) ll +prof/predefEvalConst.ml:160: | ISLASH_n -> (* ocamlprof: 0 *) iii_evaluator (/) ll +prof/predefEvalConst.ml:161: | ITIMES_n -> (* ocamlprof: 0 *) iii_evaluator ( * ) ll +prof/predefEvalConst.ml:162: | RUMINUS_n -> (* ocamlprof: 0 *) ff_evaluator (fun x -> (* ocamlprof: 0 *) -.x) ll +prof/predefEvalConst.ml:163: | RMINUS_n -> (* ocamlprof: 0 *) fff_evaluator (-.) ll +prof/predefEvalConst.ml:164: | RPLUS_n -> (* ocamlprof: 0 *) fff_evaluator (+.) ll +prof/predefEvalConst.ml:165: | RSLASH_n -> (* ocamlprof: 0 *) fff_evaluator (/.) ll +prof/predefEvalConst.ml:166: | RTIMES_n -> (* ocamlprof: 0 *) fff_evaluator ( *.) ll +prof/predefEvalConst.ml:167: | NOR_n -> (* ocamlprof: 0 *) boolred_evaluator 0 ll +prof/predefEvalConst.ml:173: | BoolRed -> (* ocamlprof: 0 *) boolred_evaluator 1 ll +prof/predefEvalType.ml:19: (* ocamlprof: 0 *) let str_l = List.map LicDump.string_of_type_eff tel in +prof/predefEvalType.ml:23: (if expect = "" then (* ocamlprof: 0 *) "" +prof/predefEvalType.ml:24: else (* ocamlprof: 0 *) (" whereas\n*** type '" ^expect^"' was expected"))))) +prof/predefEvalType.ml:30: (if expect = "" then (* ocamlprof: 0 *) "" +prof/predefEvalType.ml:32: (if msg = "" then (* ocamlprof: 0 *) "" else (* ocamlprof: 1 *) ("\n*** " ^ msg))))) +prof/predefEvalType.ml:36: (* ocamlprof: 0 *) raise (EvalType_error( +prof/predefEvalType.ml:38: (List.length v) (if List.length v>1 then (* ocamlprof: 0 *) "s" else (* ocamlprof: 0 *) "") expect)) +prof/predefEvalType.ml:125: (* ocamlprof: 0 *) match UnifyType.f [t1] [t2] with +prof/predefEvalType.ml:126: | Equal -> (* ocamlprof: 0 *) (lti,lto) +prof/predefEvalType.ml:128: (* ocamlprof: 0 *) (List.map (fun (id,tid) -> (* ocamlprof: 0 *) id, subst_type t tid) lti, +prof/predefEvalType.ml:129: List.map (fun (id,tid) -> (* ocamlprof: 0 *) id, subst_type t tid) lto) +prof/predefEvalType.ml:130: | Ko(msg) -> (* ocamlprof: 0 *) raise (Compile_error(lxm, msg)) +prof/predefEvalType.ml:169: | _ -> (* ocamlprof: 0 *) raise (Compile_error(lxm, "\n*** type error: 3 int were expected")) +prof/predefEvalType.ml:187: | REAL2INT_n -> (* ocamlprof: 0 *) ri_profile +prof/predefEvalType.ml:188: | INT2REAL_n -> (* ocamlprof: 0 *) ir_profile +prof/predefEvalType.ml:192: | RUMINUS_n -> (* ocamlprof: 0 *) rr_profile +prof/predefEvalType.ml:196: | RMINUS_n | RPLUS_n | RTIMES_n | RSLASH_n -> (* ocamlprof: 0 *) rrr_profile +prof/predefEvalType.ml:258: (* ocamlprof: 0 *) (type_error (List.flatten [[Bool_type_eff]; t; e]) "bool*any*any") +prof/predefEvalType.ml:259: | x -> (* ocamlprof: 0 *) (arity_error x "3") +prof/predefEvalType.ml:266: (* ocamlprof: 93 *) acc | _ -> (* ocamlprof: 0 *) (type_error [ceff] "bool") +prof/predefEvalType.ml:277: (* ocamlprof: 0 *) arity_error [l] (string_of_int (List.length lti)) +prof/predefEvalType.ml:282: (* ocamlprof: 0 *) type_error2 +prof/predefEvalType.ml:287: (* ocamlprof: 0 *) type_error2 +prof/solveIdent.ml:77: | Some op -> (* ocamlprof: 0 *) Predef_n (op,[]) +prof/solveIdent.ml:111: | EnumConst(id,te) -> (* ocamlprof: 0 *) EnumConst(id,te) +prof/solveIdent.ml:119: | ArrayType(id,te,ve) -> (* ocamlprof: 0 *) ArrayType(id,te, r_val_exp ve) +prof/split.ml:37: | CallByPosEff({ it = Eff.FBY }, _) -> (* ocamlprof: 0 *) true +prof/split.ml:39: | CallByPosEff({ it = Eff.CURRENT }, _) -> (* ocamlprof: 0 *) true +prof/symbolTab.ml:36: (* ocamlprof: 0 *) raise (Compile_error(lxm, "unknown type (" ^ (Ident.to_string id)^")")) +prof/symbolTab.ml:41: (* ocamlprof: 0 *) raise (Compile_error(lxm, "unknown type (" ^ (Ident.to_string id)^")")) +prof/symbolTab.ml:61: (* ocamlprof: 0 *) raise (Global_error("Can not find node " ^ (Ident.to_string id)^ +prof/syntaxTab.ml:97: (* ocamlprof: 0 *) print_string ("*** Can not find package '" ^ +prof/syntaxTab.ml:100: (fun pn pm -> (* ocamlprof: 0 *) print_string ("\n***\t - '"^(Ident.pack_name_to_string pn)^ "'")) +prof/syntaxTab.ml:111: with Not_found -> (* ocamlprof: 0 *) raise(Compile_error(lxm, "")) +prof/syntaxTab.ml:313: with Not_found -> (* ocamlprof: 0 *) raise(Compile_error(lxm, "unknown package")) +prof/syntaxTab.ml:378: (* ocamlprof: 0 *) print_string "*** not implemented.\n"; +prof/syntaxTab.ml:382: (* ocamlprof: 0 *) print_string "*** not implemented.\n"; +prof/syntaxTab.ml:386: (* ocamlprof: 0 *) print_string "*** not implemented.\n"; +prof/syntaxTab.ml:394: (* ocamlprof: 0 *) let p = Verbose.print_string ~level:3 in +prof/syntaxTab.ml:400: (fun pm -> (* ocamlprof: 0 *) p (SyntaxTree.pack_or_model_to_string pm); p "\n\t\t") +prof/syntaxTab.ml:406: (fun id _mi -> (* ocamlprof: 0 *) p ((Ident.to_string id) ^ " ")) +prof/syntaxTab.ml:412: (fun pn pi -> (* ocamlprof: 0 *) p ((Ident.pack_name_to_string pn) ^ " ")) +prof/syntaxTab.ml:418: (fun pn pm -> (* ocamlprof: 0 *) p ((Ident.pack_name_to_string pn) ^ " ")) +prof/syntaxTree.ml:124: | LeftVar sflg -> (* ocamlprof: 0 *) sflg.src +prof/syntaxTree.ml:125: | LeftField (x, _) -> (* ocamlprof: 0 *) lexeme_of_left_part x +prof/syntaxTree.ml:126: | LeftArray (x, _) -> (* ocamlprof: 0 *) lexeme_of_left_part x +prof/syntaxTree.ml:127: | LeftSlice (x, _) -> (* ocamlprof: 0 *) lexeme_of_left_part x +prof/syntaxTree.ml:133: | NSPack pi -> (* ocamlprof: 0 *) Ident.pack_name_to_string pi.it.pa_name ^ " (pack) " +prof/syntaxTree.ml:134: | NSModel mi -> (* ocamlprof: 0 *) Ident.pack_name_to_string mi.it.mo_name ^ " (model) " +prof/unifyClock.ml:27: (* ocamlprof: 1749 *) if List.mem_assoc i s then (* ocamlprof: 0 *) s else (* ocamlprof: 1749 *) (i,c)::s +prof/unifyType.ml:47: (* ocamlprof: 1165 *) if l1 <> l2 then (* ocamlprof: 0 *) Ko "\n*** incompatible structure" else +prof/unifyType.ml:107: | Ko(msg) -> (* ocamlprof: 0 *) msg +prof/unifyType.ml:108: | Equal -> (* ocamlprof: 0 *) "types are equals\n" +prof/unifyType.ml:109: | Unif t -> (* ocamlprof: 0 *) "types are unifiable via " ^ (teff2str t) ^ "\n" +prof/uniqueOutput.ml:64: (* ocamlprof: 0 *) let rec aux vds v acc = (* ocamlprof: 0 *) match vds with +prof/uniqueOutput.ml:65: | VDS_def -> (* ocamlprof: 0 *) acc +prof/uniqueOutput.ml:66: | VDS_undef -> (* ocamlprof: 0 *) v::acc +prof/uniqueOutput.ml:68: (* ocamlprof: 0 *) List.fold_left (fun acc (id,vds) -> (* ocamlprof: 0 *) aux vds (v^"."^(id2str id)) acc) acc fl +prof/uniqueOutput.ml:69: | VDS_array(a) -> (* ocamlprof: 0 *) fst +prof/uniqueOutput.ml:71: (fun (acc,i) vds -> (* ocamlprof: 0 *) aux vds (v^"["^(int2str i) ^"]") acc, i+1) (acc,0) a) +prof/uniqueOutput.ml:83: (* ocamlprof: 0 *) let msg = "\n*** Variable " ^ v ^ " is defined twice." in +prof/uniqueOutput.ml:186: (* ocamlprof: 0 *) let msg = "\n*** Undefined variable(s): " ^ +prof/uniqueOutput.ml:201: (* ocamlprof: 0 *) let msg = "\n*** Error; " ^(id2str v.var_name_eff) ^ +prof/uniqueOutput.ml:211: (* ocamlprof: 0 *) let msg = "\n*** Undefined variable: " ^ (id2str v.var_name_eff) +prof/verbose.ml:34: (fun t -> (* ocamlprof: 2837 *) if (!_level >= level) then (* ocamlprof: 0 *) (print_string t; flush stdout) else (* ocamlprof: 2837 *) ()) s diff --git a/src/untested_line_counter b/src/untested_line_counter index 0d9e56e7..c3c7f2c5 100644 --- a/src/untested_line_counter +++ b/src/untested_line_counter @@ -1 +1 @@ - 402 4118 32317 dead.grep +402 / 1584 = 25.37 % -- GitLab