Skip to content
Snippets Groups Projects
Commit e74551e8 authored by erwan's avatar erwan
Browse files

Better error messages.

parent 6e914d04
No related branches found
No related tags found
No related merge requests found
OASISFormat: 0.4
Name: lustre-v6
Version: 1.697
Version: 1.698
Synopsis: The Lustre V6 Verimag compiler
Description: This package contains:
(1) lus2lic: the (current) name of the compiler (and interpreter via -exec).
......
(** Time-stamp: <modified the 24/11/2016 (at 16:25) by Erwan Jahier> *)
(** Time-stamp: <modified the 22/06/2017 (at 08:43) by Erwan Jahier> *)
open AstPredef
......@@ -89,7 +89,7 @@ and eval_by_pos_type
let t_args = List.flatten t_argsl in
let llti = List.length lti and lt_args = List.length t_args in
let _ = if llti <> lt_args then
raise_arity_error "" lt_args llti
raise_arity_error (fst (fst node_key)) lt_args llti
in
(* lti = expecteds, t_args = given *)
let tmatches = try UnifyType.is_matched lti t_args
......@@ -138,8 +138,11 @@ and eval_by_pos_type
else
raise_type_error (List.flatten targs) []
"two arrays of the same type was expected"
| [ t1;t2 ] ->
raise_type_error (List.flatten targs) []
" whereas 2 arrays were expected"
| _ ->
raise_arity_error "" (List.length args) 2
raise_arity_error "concat" (List.length args) 2
in
None, args, tve
| Lic.STRUCT_ACCESS (fid) ->
......@@ -157,7 +160,7 @@ and eval_by_pos_type
(Lic.string_of_type (List.hd targ))))
)
| [x] -> raise_type_error [x] [] "some struct type was expected"
| x -> raise_arity_error "" (List.length x) 1
| x -> raise_arity_error "struct access" (List.length x) 1
in
None, [arg], [teff_field]
| Lic.ARRAY_ACCES(i) ->
......@@ -244,7 +247,7 @@ and eval_by_pos_type
in
match targs with
| [teff] -> None, args, teff
| _ -> raise_arity_error "" (List.length targs) 1
| _ -> raise_arity_error "when" (List.length targs) 1
)
| Lic.ARROW
| Lic.FBY -> (
......@@ -252,20 +255,20 @@ and eval_by_pos_type
match targs with
| [init; teff] -> if init = teff then None, args, teff else
raise(EvalType_error("type mismatch. "))
| _ -> raise_arity_error "" (List.length targs) 2
| _ -> raise_arity_error "fby" (List.length targs) 2
)
| Lic.CURRENT (Some _) -> (
let args, targs = List.split (List.map (f id_solver) args) in
match targs with
| [_;teff] -> None, args, teff
| _ -> raise_arity_error "" (List.length targs) 2
| _ -> raise_arity_error "current" (List.length targs) 2
)
| Lic.CURRENT None
| Lic.PRE -> (
let args, targs = List.split (List.map (f id_solver) args) in
match targs with
| [teff] -> None, args, teff
| _ -> raise_arity_error "" (List.length targs) 1
| _ -> raise_arity_error "pre" (List.length targs) 1
)
......
(* Time-stamp: <modified the 30/11/2016 (at 16:40) by Erwan Jahier> *)
(* Time-stamp: <modified the 22/06/2017 (at 08:40) by Erwan Jahier> *)
open AstPredef
open Lxm
......@@ -32,9 +32,8 @@ let raise_type_error
let pr = Lic.string_of_type_list prov in
let ex = Lic.string_of_type_list expec in
(
"\n*** type '" ^ pr ^ "' was provided" ^ (
if ex = "" then ""
else (" whereas\n*** type '" ^ex^"' was expected")
"'" ^ pr ^ "' was provided" ^ (
if ex = "" then "" else (" whereas\n*** type '" ^ex^"' was expected")
) ^ (
if msg = "" then "" else ("\n*** " ^ msg)
)
......@@ -44,7 +43,7 @@ let raise_type_error
let raise_arity_error (msg:string) (get:int) (expect:int) =
raise (EvalType_error(
Printf.sprintf "\n*** arity error%s: %d argument%s, whereas %d were expected"
Printf.sprintf "bad arity (%s): %d argument%s, whereas %d were expected"
msg get (if get>1 then "s" else "") expect))
(*********************************************************************************)
......@@ -150,7 +149,7 @@ let condact_profile
Lv6Verbose.exe ~flag:dbg ~level:3 (fun () ->
Lv6Verbose.printf " condact_profile: dflt=%s\n" (string_of_const_eff dflt));
let _ = if (dl <> ol) then
raise_arity_error " in condact default arg" dl ol in
raise_arity_error "in condact default arg" dl ol in
let out_types = List.map (fun x -> x.var_type_eff) outlist in
let _ = if dflt_types <> out_types then
......@@ -390,7 +389,7 @@ let f (id_solver: IdSolver.t) (op: op) (lxm: Lxm.t) : typer = fun ll ->
| [[Bool_type_eff]; t; e] ->
if t = e then t else
(type_error (List.flatten [[Bool_type_eff]; t; e]) "bool*any*any")
| x -> (raise_arity_error "" (List.length x) 3)
| x -> (raise_arity_error "if/then/else" (List.length x) 3)
)
| (NOR_n | DIESE_n) ->
(* VERRUE 2 : cannot check the arity for them. *)
......@@ -409,7 +408,7 @@ let f (id_solver: IdSolver.t) (op: op) (lxm: Lxm.t) : typer = fun ll ->
and lto = List.map (fun v -> v.var_type_eff) node_eff.outlist_eff in
let l = List.flatten ll in
if (List.length l <> List.length lti) then
raise_arity_error "" (List.length l) (List.length lti)
raise_arity_error (op2string op) (List.length l) (List.length lti)
else if (l = []) then
(* useless to call UnifyType.f ! *)
lto
......
(** Automatically generated from Makefile *)
let tool = "lus2lic"
let branch = "master"
let commit = "697"
let sha_1 = "2650f12bcd544dc9b308b2ffb31f2a4a7267bbcb"
let commit = "698"
let sha_1 = "6e914d041797511cf84b2a956827d355630bd3fc"
let str = (branch ^ "." ^ commit ^ " (" ^ sha_1 ^ ")")
let maintainer = "jahier@imag.fr"
==> lus2lic0.sum <==
Test Run By jahier on Wed Jun 21 17:15:56
Test Run By jahier on Thu Jun 22 08:46:40
Native configuration is x86_64-unknown-linux-gnu
=== lus2lic0 tests ===
......@@ -64,7 +64,7 @@ XFAIL: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/lecte
XFAIL: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/s.lus
==> lus2lic1.sum <==
Test Run By jahier on Wed Jun 21 17:15:57
Test Run By jahier on Thu Jun 22 08:46:41
Native configuration is x86_64-unknown-linux-gnu
=== lus2lic1 tests ===
......@@ -398,7 +398,7 @@ PASS: sh multipar.sh
PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c multipar.lus {}
==> lus2lic2.sum <==
Test Run By jahier on Wed Jun 21 17:16:53
Test Run By jahier on Thu Jun 22 08:47:32
Native configuration is x86_64-unknown-linux-gnu
=== lus2lic2 tests ===
......@@ -738,7 +738,7 @@ PASS: sh zzz2.sh
PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c zzz2.lus {}
==> lus2lic3.sum <==
Test Run By jahier on Wed Jun 21 17:17:49
Test Run By jahier on Thu Jun 22 08:48:28
Native configuration is x86_64-unknown-linux-gnu
=== lus2lic3 tests ===
......@@ -1243,7 +1243,7 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node multipar.lus {}
==> lus2lic4.sum <==
Test Run By jahier on Wed Jun 21 17:19:06
Test Run By jahier on Thu Jun 22 08:49:40
Native configuration is x86_64-unknown-linux-gnu
=== lus2lic4 tests ===
......@@ -1760,14 +1760,14 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {}
# of unexpected failures 6
===============================
# Total number of failures: 22
lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 1 seconds
lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 0 seconds
lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 51 seconds
lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 56 seconds
lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 55 seconds
lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 72 seconds
lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 48 seconds
lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 49 seconds
* Ref time:
0.06user 0.00system 3:58.30elapsed 0%CPU (0avgtext+0avgdata 5688maxresident)k
96inputs+0outputs (0major+6157minor)pagefaults 0swaps
0.07user 0.00system 3:49.41elapsed 0%CPU (0avgtext+0avgdata 5628maxresident)k
64inputs+0outputs (0major+6184minor)pagefaults 0swaps
* Quick time (-j 4):
0.04user 0.04system 2:19.84elapsed 0%CPU (0avgtext+0avgdata 5684maxresident)k
32inputs+0outputs (0major+6176minor)pagefaults 0swaps
0.06user 0.01system 2:20.88elapsed 0%CPU (0avgtext+0avgdata 5628maxresident)k
64inputs+0outputs (0major+6181minor)pagefaults 0swaps
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment