859 str "->", |
859 str "->", |
860 print_typ (INFX (1, R)) ty2 |
860 print_typ (INFX (1, R)) ty2 |
861 ); |
861 ); |
862 |
862 |
863 val setup = |
863 val setup = |
864 Code_Target.add_target |
864 Code_Target.add_language |
865 (target_SML, { serializer = serializer_sml, literals = literals_sml, |
865 (target_SML, { serializer = serializer_sml, literals = literals_sml, |
866 check = { env_var = "ISABELLE_PROCESS", |
866 check = { env_var = "ISABELLE_PROCESS", |
867 make_destination = fn p => Path.append p (Path.explode "ROOT.ML"), |
867 make_destination = fn p => Path.append p (Path.explode "ROOT.ML"), |
868 make_command = fn _ => |
868 make_command = fn _ => |
869 "\"$ISABELLE_PROCESS\" -r -q -e 'datatype ref = datatype Unsynchronized.ref; use \"ROOT.ML\" handle _ => exit 1' Pure" } }) |
869 "\"$ISABELLE_PROCESS\" -r -q -e 'datatype ref = datatype Unsynchronized.ref; use \"ROOT.ML\" handle _ => exit 1' Pure" } }) |
870 #> Code_Target.add_target |
870 #> Code_Target.add_language |
871 (target_OCaml, { serializer = serializer_ocaml, literals = literals_ocaml, |
871 (target_OCaml, { serializer = serializer_ocaml, literals = literals_ocaml, |
872 check = { env_var = "ISABELLE_OCAML", |
872 check = { env_var = "ISABELLE_OCAML", |
873 make_destination = fn p => Path.append p (Path.explode "ROOT.ocaml"), |
873 make_destination = fn p => Path.append p (Path.explode "ROOT.ocaml"), |
874 make_command = fn _ => "\"$ISABELLE_OCAML\" -w pu nums.cma ROOT.ocaml" } }) |
874 make_command = fn _ => "\"$ISABELLE_OCAML\" -w pu nums.cma ROOT.ocaml" } }) |
875 #> Code_Target.set_printings (Type_Constructor ("fun", |
875 #> Code_Target.set_printings (Type_Constructor ("fun", |