From 0f4456bfb174ac40f4698a552460de2587f568d1 Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Fri, 27 Sep 2019 17:41:57 +0100 Subject: [PATCH 01/19] wip: updating all files to have correct annotations for Imandra VSCode to function --- src-core-pp/base_types_json.iml | 6 +++++- src-core-pp/datetime_json.iml | 5 ++++- src-core-pp/encode_base_types.iml | 6 ++++-- src-core-pp/encode_datetime.iml | 7 +++++-- src-core-pp/parse_base_types.iml | 4 +++- src-core-pp/parse_datetime.iml | 6 ++++-- src-core-pp/parser_utils.iml | 4 +++- src-core-printer/core_printer.iml | 6 +++++- .../timeDefaults_current_time.iml | 3 +++ src-core-time-defaults-pp/timeDefaults_json.iml | 3 +++ src-core-time-defaults-pp/timeDefaults_parser.iml | 3 +++ src-core-time-defaults-pp/timeDefaults_pp.iml | 3 +++ src-core-time-defaults/timeDefaults.iml | 1 + src-core-utils-pp/current_time.iml | 4 +++- src-core-utils/message_utils.iml | 1 + src-model/src-conversions/enum_converter.iml | 2 ++ .../src-conversions/repeating_groups_converter.iml | 2 ++ src-model/src-conversions/type_converter.iml | 5 +++++ src-model/src-string-factory/model_enum_names.iml | 3 +++ src-model/src-string-factory/model_tag_names.iml | 3 +++ src-model/src-string-factory/string_assoc.iml | 3 +++ .../src-string-factory/string_assoc_common.iml | 3 ++- src-model/src-string-factory/string_checks.iml | 4 ++++ src-model/src-types-pp/json_to_action.iml | 6 ++++++ src-model/src-types-pp/json_to_enum.iml | 5 +++++ src-model/src-types-pp/json_to_message.iml | 8 ++++++++ src-model/src-types-pp/json_to_model_state.iml | 6 ++++++ src-model/src-types-pp/json_to_model_tag.iml | 6 ++++++ src-model/src-types-pp/model_actions_json.iml | 6 ++++++ src-model/src-types-pp/model_enums_json.iml | 3 +++ src-model/src-types-pp/model_internals_json.iml | 3 +++ src-model/src-types-pp/model_messages_json.iml | 8 ++++++++ src-model/src-types-pp/model_state_json.iml | 5 +++++ src-model/src-types-pp/model_tags_json.iml | 4 ++++ src-model/src-types/actions.iml | 2 ++ src-model/src-types/model_messages.iml | 4 ++++ src-model/src-types/state.iml | 2 ++ src-model/src/act_checks.iml | 2 ++ src-model/src/act_process.iml | 3 +++ src-model/src/msg_check_fields.iml | 3 +++ src-model/src/msg_check_validate.iml | 3 +++ src-model/src/msg_defaults.iml | 1 + src-model/src/msg_process.iml | 8 ++++++++ src-model/src/msg_receive.iml | 4 ++++ src-model/src/msg_reject.iml | 5 +++++ src-model/src/venue.iml | 4 ++++ src-protocol-exts-pp-vg/full_app_enums_json.iml | 6 ++++-- src-protocol-exts-pp-vg/full_app_messages_json.iml | 9 ++++++++- src-protocol-exts-pp-vg/full_app_records_json.iml | 9 +++++++-- src-protocol-exts-pp-vg/full_app_tags_json.iml | 6 ++++-- src-protocol-exts-pp-vg/parse_app_enums.iml | 4 +++- src-protocol-exts-pp-vg/parse_app_messages.iml | 10 +++++++++- src-protocol-exts-pp-vg/parse_app_records.iml | 7 +++++++ src-protocol-exts-pp-vg/parse_app_tags.iml | 4 +++- src-protocol-exts-pp/encode_app_enums.iml | 4 ++++ src-protocol-exts-pp/encode_app_messages.iml | 8 ++++++++ src-protocol-exts-pp/encode_app_records.iml | 7 +++++++ src-protocol-exts-pp/encode_app_tags.iml | 3 +++ src-protocol-exts-pp/encode_utils.iml | 4 ++++ src-protocol-exts-pp/full_app_enums_json.iml | 3 +++ src-protocol-exts-pp/full_app_messages_json.iml | 8 ++++++++ src-protocol-exts-pp/full_app_records_json.iml | 7 +++++++ src-protocol-exts-pp/full_app_tags_json.iml | 3 +++ src-protocol-exts-pp/json_generator_utils.iml | 2 ++ src-protocol-exts-pp/parse_app_enums.iml | 4 ++++ src-protocol-exts-pp/parse_app_messages.iml | 9 +++++++++ src-protocol-exts-pp/parse_app_records.iml | 7 +++++++ src-protocol-exts-pp/parse_app_tags.iml | 3 +++ src-protocol-exts-vg/full_app_messages.iml | 6 +++++- src-protocol-exts-vg/full_app_records.iml | 3 ++- src-protocol-exts/full_app_messages.iml | 5 +++++ src-protocol-exts/full_app_records.iml | 3 +++ src-protocol-pp/encode_admin_enums.iml | 4 +++- src-protocol-pp/encode_admin_messages.iml | 9 ++++++++- src-protocol-pp/encode_admin_tags.iml | 5 +++-- src-protocol-pp/encode_full_messages.iml | 10 +++++++++- src-protocol-pp/encode_full_tags.iml | 6 +++++- src-protocol-pp/fix_engine_json.iml | 9 ++++++++- src-protocol-pp/full_admin_enums_json.iml | 4 +++- src-protocol-pp/full_admin_messages_json.iml | 8 +++++++- src-protocol-pp/full_admin_tags_json.iml | 4 +++- src-protocol-pp/full_message_tags_json.iml | 6 +++++- src-protocol-pp/full_messages_json.iml | 10 +++++++++- src-protocol-pp/parse_admin_enums.iml | 5 +++-- src-protocol-pp/parse_admin_messages.iml | 11 ++++++++++- src-protocol-pp/parse_admin_tags.iml | 5 +++-- src-protocol-pp/parse_full_messages.iml | 11 ++++++++++- src-protocol-pp/parse_full_tags.iml | 6 +++++- src-protocol-pp/pp_main.iml | 8 +++----- src-protocol/full_admin_messages.iml | 5 ++++- src-protocol/full_message_tags.iml | 3 ++- src-protocol/full_messages.iml | 6 +++++- src-simulation/client.iml | 10 ++++++++-- src-simulation/fix_global_state.iml | 13 +++++++++++++ src/fix_engine.iml | 6 +++++- src/fix_engine_state.iml | 6 +++++- src/fix_engine_transitions.iml | 9 ++++++++- src/fix_engine_utils.iml | 9 +++++++++ 98 files changed, 463 insertions(+), 57 deletions(-) diff --git a/src-core-pp/base_types_json.iml b/src-core-pp/base_types_json.iml index 07cd1f5f..12af79c2 100644 --- a/src-core-pp/base_types_json.iml +++ b/src-core-pp/base_types_json.iml @@ -6,9 +6,12 @@ base_types_json.ml *) - +[@@@program] open Yojson;; +[@@@import "../src-core/numeric.iml"] open Numeric;; +[@@@require "decoders-yojson"] +open Decoders_yojson.Basic.Decode;; module JU = Yojson.Basic.Util;; module D = Decoders_yojson.Basic.Decode;; open D.Infix;; @@ -255,3 +258,4 @@ let bool_opt_to_json : bool option -> json = function | None -> `Null | Some x -> bool_to_json x ;; +[@@@logic] \ No newline at end of file diff --git a/src-core-pp/datetime_json.iml b/src-core-pp/datetime_json.iml index d1a43303..3b98a319 100644 --- a/src-core-pp/datetime_json.iml +++ b/src-core-pp/datetime_json.iml @@ -6,9 +6,11 @@ datetime_json.ml *) - +[@@@program] open Yojson;; +[@@@import "../src-core/datetime.iml"] open Datetime;; +[@@@import "base_types_json.iml"] open Base_types_json;; module JU = Yojson.Basic.Util;; module D = Decoders_yojson.Basic.Decode;; @@ -277,3 +279,4 @@ let monthyear_opt_to_json = function | None -> `Null | Some x -> monthyear_to_json x ;; +[@@@logic] \ No newline at end of file diff --git a/src-core-pp/encode_base_types.iml b/src-core-pp/encode_base_types.iml index 527d098c..b29efb7e 100644 --- a/src-core-pp/encode_base_types.iml +++ b/src-core-pp/encode_base_types.iml @@ -6,7 +6,8 @@ base_types_json.ml *) - +[@@@program] +[@@@import "../src-core/numeric.iml"] open Numeric;; @@ -30,4 +31,5 @@ let encode_symbol x = x;; let encode_bool : bool -> string = function | true -> "Y" | false -> "N" -;; \ No newline at end of file +;; +[@@@logic] \ No newline at end of file diff --git a/src-core-pp/encode_datetime.iml b/src-core-pp/encode_datetime.iml index f92003d0..5b2580a3 100644 --- a/src-core-pp/encode_datetime.iml +++ b/src-core-pp/encode_datetime.iml @@ -7,8 +7,10 @@ parse_datetime.ml *) - +[@@@program] +[@@@import "../src-core/datetime.iml"] open Datetime;; +[@@@import "encode_base_types.iml"] open Encode_base_types;; @@ -101,4 +103,5 @@ let encode_Duration (x : fix_duration) : string = let days = (duration_to_seconds x) / (60*60*24) in "D"^(Z.to_string days) -;; \ No newline at end of file +;; +[@@@logic] \ No newline at end of file diff --git a/src-core-pp/parse_base_types.iml b/src-core-pp/parse_base_types.iml index 973e1a49..ab2e7982 100644 --- a/src-core-pp/parse_base_types.iml +++ b/src-core-pp/parse_base_types.iml @@ -6,7 +6,8 @@ datetime_json.ml *) - +[@@@program] +[@@@import "../src-core/numeric.iml"] open Numeric;; let parse_string (str : string) : string option = @@ -49,3 +50,4 @@ let parse_float (str: string) : Numeric.fix_float_6 option = Some (Float_6 (Z.of_int whole * 1000000 + Z.of_int fraction * pow10 (6 - frlen))) else None ;; +[@@@logic] \ No newline at end of file diff --git a/src-core-pp/parse_datetime.iml b/src-core-pp/parse_datetime.iml index b86fac6c..2c8e4e56 100644 --- a/src-core-pp/parse_datetime.iml +++ b/src-core-pp/parse_datetime.iml @@ -7,7 +7,8 @@ parse_datetime.ml *) - +[@@@program] +[@@@import "../src-core/datetime.iml"] open Datetime;; @@ -175,4 +176,5 @@ let parse_Duration (str:string) : fix_duration option = })) | _,_ -> None) else None -;; \ No newline at end of file +;; +[@@@logic] \ No newline at end of file diff --git a/src-core-pp/parser_utils.iml b/src-core-pp/parser_utils.iml index 3cff93da..dd2d8a6c 100644 --- a/src-core-pp/parser_utils.iml +++ b/src-core-pp/parser_utils.iml @@ -11,7 +11,8 @@ (** OCaml Stream processing helper functions that break a raw byte stream into a stream of key=value pairs and then into a stream of messages. *) - +[@@@program] +[@@@import "parse_base_types.iml"] (** Splits a stream of characters into a stream of [(key * value)] pairs. *) let split_into_key_value (spliton : char) ( stream : char Stream.t ) : (string * string) Stream.t = let current = ref [] in @@ -311,3 +312,4 @@ module Parser = struct end +[@@@logic] \ No newline at end of file diff --git a/src-core-printer/core_printer.iml b/src-core-printer/core_printer.iml index e0ddc35a..5c7eea2b 100644 --- a/src-core-printer/core_printer.iml +++ b/src-core-printer/core_printer.iml @@ -7,9 +7,12 @@ core_printer.ml *) - +[@@@program] +[@@@import "../src-core-pp/encode_base_types.iml"] open Encode_base_types;; +[@@@import "../src-core-pp/encode_datetime.iml"] open Encode_datetime;; +[@@@import "../src-core-time-defaults-pp/timeDefaults_pp.iml"] open TimeDefaults_pp;; let fix_float_0_to_string x = @@ -79,3 +82,4 @@ let fix_monthyear_to_string x = let fix_duration_to_string x = encode_Duration x ;; +[@@@logic] \ No newline at end of file diff --git a/src-core-time-defaults-pp/timeDefaults_current_time.iml b/src-core-time-defaults-pp/timeDefaults_current_time.iml index 3c477cfe..6b998f32 100644 --- a/src-core-time-defaults-pp/timeDefaults_current_time.iml +++ b/src-core-time-defaults-pp/timeDefaults_current_time.iml @@ -1,6 +1,9 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-core-utils-pp/current_time.iml"] open Current_time;; let get_current_utctimestamp = get_current_utctimestamp_milli;; let get_current_utctimeonly = get_current_utctimeonly_milli;; +[@@@logic] \ No newline at end of file diff --git a/src-core-time-defaults-pp/timeDefaults_json.iml b/src-core-time-defaults-pp/timeDefaults_json.iml index ffac4f17..e1491c81 100644 --- a/src-core-time-defaults-pp/timeDefaults_json.iml +++ b/src-core-time-defaults-pp/timeDefaults_json.iml @@ -1,4 +1,6 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-core-pp/datetime_json.iml"] open Datetime_json;; let utctimestamp_to_json = utctimestamp_milli_to_json;; @@ -8,3 +10,4 @@ let utctimestamp_opt_to_json = utctimestamp_milli_opt_to_json;; let utctimeonly_to_json = utctimeonly_milli_to_json;; let utctimeonly_opt_to_json = utctimeonly_milli_opt_to_json;; +[@@@logic] \ No newline at end of file diff --git a/src-core-time-defaults-pp/timeDefaults_parser.iml b/src-core-time-defaults-pp/timeDefaults_parser.iml index 651a8711..b93258bf 100644 --- a/src-core-time-defaults-pp/timeDefaults_parser.iml +++ b/src-core-time-defaults-pp/timeDefaults_parser.iml @@ -1,6 +1,9 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-core-pp/parse_datetime.iml"] open Parse_datetime;; let parse_UTCTimestamp = parse_UTCTimestamp_milli;; let parse_UTCTimeOnly = parse_UTCTimeOnly_milli;; +[@@@logic] \ No newline at end of file diff --git a/src-core-time-defaults-pp/timeDefaults_pp.iml b/src-core-time-defaults-pp/timeDefaults_pp.iml index 88d023aa..f34f159f 100644 --- a/src-core-time-defaults-pp/timeDefaults_pp.iml +++ b/src-core-time-defaults-pp/timeDefaults_pp.iml @@ -1,6 +1,9 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-core-pp/encode_datetime.iml"] open Encode_datetime;; let encode_UTCTimestamp = encode_UTCTimestamp_milli;; let encode_UTCTimeOnly = encode_UTCTimeOnly_milli;; +[@@@logic] \ No newline at end of file diff --git a/src-core-time-defaults/timeDefaults.iml b/src-core-time-defaults/timeDefaults.iml index 733cbf4d..76a4b438 100644 --- a/src-core-time-defaults/timeDefaults.iml +++ b/src-core-time-defaults/timeDefaults.iml @@ -1,4 +1,5 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "../src-core/datetime.iml"] open Datetime;; type milli_micro = diff --git a/src-core-utils-pp/current_time.iml b/src-core-utils-pp/current_time.iml index 31a4b474..f2202447 100644 --- a/src-core-utils-pp/current_time.iml +++ b/src-core-utils-pp/current_time.iml @@ -8,7 +8,8 @@ *) - +[@@@program] +[@@@import "../src-core/datetime.iml"] open Datetime let get_current_utctimestamp_milli ?offset:(offset=0) () : fix_utctimestamp_milli = @@ -55,3 +56,4 @@ let get_current_localmktdate () : fix_localmktdate = convert_utctimestamp_milli_localmktdate (get_current_utctimestamp_milli ()) ;; +[@@@logic] \ No newline at end of file diff --git a/src-core-utils/message_utils.iml b/src-core-utils/message_utils.iml index a897d9e2..76c54015 100644 --- a/src-core-utils/message_utils.iml +++ b/src-core-utils/message_utils.iml @@ -1,4 +1,5 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "../src-model/src-types/model_messages.iml"] open Model_messages;; let get_resend_message (msg) = diff --git a/src-model/src-conversions/enum_converter.iml b/src-model/src-conversions/enum_converter.iml index b7d3dfa1..d4059af0 100644 --- a/src-model/src-conversions/enum_converter.iml +++ b/src-model/src-conversions/enum_converter.iml @@ -1,5 +1,7 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "../../src-protocol-exts/full_app_enums.iml"] open Full_app_enums;; +[@@@import "../src-types/model_app_enums.iml"] open Model_app_enums;; let convert__full_to_model_Side (f : fix_side) = diff --git a/src-model/src-conversions/repeating_groups_converter.iml b/src-model/src-conversions/repeating_groups_converter.iml index 4e245e7c..56db569c 100644 --- a/src-model/src-conversions/repeating_groups_converter.iml +++ b/src-model/src-conversions/repeating_groups_converter.iml @@ -1,5 +1,7 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "../../src-core/imandra_utils.iml"] open Imandra_utils;; +[@@@import "../src-types/model_tags.iml"] open Model_tags;; exception Ipl_rg_exception diff --git a/src-model/src-conversions/type_converter.iml b/src-model/src-conversions/type_converter.iml index 838d6a7d..7f3da5f8 100644 --- a/src-model/src-conversions/type_converter.iml +++ b/src-model/src-conversions/type_converter.iml @@ -1,8 +1,13 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "enum_converter.iml"] open Enum_converter;; +[@@@import "../../src-protocol-exts/full_app_messages.iml"] open Full_app_messages;; +[@@@import "../../src-protocol-exts/full_app_records.iml"] open Full_app_records;; +[@@@import "../src-types/model_messages.iml"] open Model_messages;; +[@@@import "../src-types/model_tags.iml"] open Model_tags;; let convert__full_to_model_ExecutionReport (msg : full_fix_executionreport_data) = diff --git a/src-model/src-string-factory/model_enum_names.iml b/src-model/src-string-factory/model_enum_names.iml index 890cd1e1..dc0b12d0 100644 --- a/src-model/src-string-factory/model_enum_names.iml +++ b/src-model/src-string-factory/model_enum_names.iml @@ -1,4 +1,6 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-types/model_app_enums.iml"] open Model_app_enums;; let mod_side_to_string (d) = @@ -174,3 +176,4 @@ let string_to_mod_exectype_opt (d) = | _ -> (None) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-model/src-string-factory/model_tag_names.iml b/src-model/src-string-factory/model_tag_names.iml index ee461e46..94979627 100644 --- a/src-model/src-string-factory/model_tag_names.iml +++ b/src-model/src-string-factory/model_tag_names.iml @@ -1,4 +1,6 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-types/model_tags.iml"] open Model_tags;; let tag_to_message (x) = @@ -18,3 +20,4 @@ let tag_to_field (x) = | _ -> None ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-model/src-string-factory/string_assoc.iml b/src-model/src-string-factory/string_assoc.iml index a8718fa9..21bc3b9b 100644 --- a/src-model/src-string-factory/string_assoc.iml +++ b/src-model/src-string-factory/string_assoc.iml @@ -1,4 +1,6 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "string_assoc_common.iml"] open String_assoc_common;; module StringAssoc = struct @@ -26,3 +28,4 @@ module StringAssoc = struct with Not_found -> raise (No_match s) end;; +[@@@logic] \ No newline at end of file diff --git a/src-model/src-string-factory/string_assoc_common.iml b/src-model/src-string-factory/string_assoc_common.iml index 3221e694..7873e994 100644 --- a/src-model/src-string-factory/string_assoc_common.iml +++ b/src-model/src-string-factory/string_assoc_common.iml @@ -1,3 +1,4 @@ (* Aesthetic Integration copyright 2018 *) - +[@@@program] let string_pairs = ("Actions.m_action_fix_x","x") :: (("Model_messages.mod_executionreport_data","ExecutionReport") :: (("Model_messages.mod_newordersingle_data","NewOrderSingle") :: (("Actions.mod_f_x_x","x") :: (("Model_messages.mod_f_ExecutionReport_ClOrdID","ClOrdID") :: (("Model_messages.mod_f_ExecutionReport_OrderID","OrderID") :: (("Model_messages.mod_f_ExecutionReport_ExecID","ExecID") :: (("Model_messages.mod_f_ExecutionReport_ExecType","ExecType") :: (("Model_messages.mod_f_ExecutionReport_AvgPx","AvgPx") :: (("Model_messages.mod_f_ExecutionReport_Side","Side") :: (("Model_messages.mod_f_ExecutionReport_LeavesQty","LeavesQty") :: (("Model_messages.mod_f_ExecutionReport_CumQty","CumQty") :: (("Model_messages.mod_f_ExecutionReport_OrdStatus","OrdStatus") :: (("Model_messages.mod_f_ExecutionReport_Instrument_Symbol","Instrument.Symbol") :: (("Model_messages.mod_f_ExecutionReport_Text","Text") :: (("Model_messages.mod_f_NewOrderSingle_ClOrdID","ClOrdID") :: (("Model_messages.mod_f_NewOrderSingle_Side","Side") :: (("Model_messages.mod_f_NewOrderSingle_TransactTime","TransactTime") :: (("Model_messages.mod_f_NewOrderSingle_OrdType","OrdType") :: (("Model_messages.mod_f_NewOrderSingle_Instrument_Symbol","Instrument.Symbol") :: (("Model_app_enums.model_fix_side","Side") :: (("Model_app_enums.model_fix_ordtype","OrdType") :: (("Model_app_enums.model_fix_ordstatus","OrdStatus") :: (("Model_app_enums.model_fix_exectype","ExecType") :: (("Model_app_enums.MOD_FIX_Side_Buy","Side.Buy") :: (("Model_app_enums.MOD_FIX_Side_Sell","Side.Sell") :: (("Model_app_enums.MOD_FIX_Side_BuyMinus","Side.BuyMinus") :: (("Model_app_enums.MOD_FIX_Side_SellPlus","Side.SellPlus") :: (("Model_app_enums.MOD_FIX_Side_SellShort","Side.SellShort") :: (("Model_app_enums.MOD_FIX_Side_SellShortExempt","Side.SellShortExempt") :: (("Model_app_enums.MOD_FIX_Side_Undisclosed","Side.Undisclosed") :: (("Model_app_enums.MOD_FIX_Side_Cross","Side.Cross") :: (("Model_app_enums.MOD_FIX_Side_CrossShort","Side.CrossShort") :: (("Model_app_enums.MOD_FIX_Side_CrossShortExempt","Side.CrossShortExempt") :: (("Model_app_enums.MOD_FIX_Side_AsDefined","Side.AsDefined") :: (("Model_app_enums.MOD_FIX_Side_Opposite","Side.Opposite") :: (("Model_app_enums.MOD_FIX_Side_Subscribe","Side.Subscribe") :: (("Model_app_enums.MOD_FIX_Side_Redeem","Side.Redeem") :: (("Model_app_enums.MOD_FIX_Side_Lend","Side.Lend") :: (("Model_app_enums.MOD_FIX_Side_Borrow","Side.Borrow") :: (("Model_app_enums.MOD_FIX_OrdType_Market","OrdType.Market") :: (("Model_app_enums.MOD_FIX_OrdType_Limit","OrdType.Limit") :: (("Model_app_enums.MOD_FIX_OrdType_Stop","OrdType.Stop") :: (("Model_app_enums.MOD_FIX_OrdType_StopLimit","OrdType.StopLimit") :: (("Model_app_enums.MOD_FIX_OrdType_WithOrWithout","OrdType.WithOrWithout") :: (("Model_app_enums.MOD_FIX_OrdType_LimitOrBetter","OrdType.LimitOrBetter") :: (("Model_app_enums.MOD_FIX_OrdType_LimitWithOrWithout","OrdType.LimitWithOrWithout") :: (("Model_app_enums.MOD_FIX_OrdType_OnBasis","OrdType.OnBasis") :: (("Model_app_enums.MOD_FIX_OrdType_PreviouslyQuoted","OrdType.PreviouslyQuoted") :: (("Model_app_enums.MOD_FIX_OrdType_PreviouslyIndicated","OrdType.PreviouslyIndicated") :: (("Model_app_enums.MOD_FIX_OrdType_ForexSwap","OrdType.ForexSwap") :: (("Model_app_enums.MOD_FIX_OrdType_Funari","OrdType.Funari") :: (("Model_app_enums.MOD_FIX_OrdType_MarketIfTouched","OrdType.MarketIfTouched") :: (("Model_app_enums.MOD_FIX_OrdType_MarketWithLeftOverAsLimit","OrdType.MarketWithLeftOverAsLimit") :: (("Model_app_enums.MOD_FIX_OrdType_PreviousFundValuationPoint","OrdType.PreviousFundValuationPoint") :: (("Model_app_enums.MOD_FIX_OrdType_NextFundValuationPoint","OrdType.NextFundValuationPoint") :: (("Model_app_enums.MOD_FIX_OrdType_Pegged","OrdType.Pegged") :: (("Model_app_enums.MOD_FIX_OrdStatus_New","OrdStatus.New") :: (("Model_app_enums.MOD_FIX_OrdStatus_PartiallyFilled","OrdStatus.PartiallyFilled") :: (("Model_app_enums.MOD_FIX_OrdStatus_Filled","OrdStatus.Filled") :: (("Model_app_enums.MOD_FIX_OrdStatus_DoneForDay","OrdStatus.DoneForDay") :: (("Model_app_enums.MOD_FIX_OrdStatus_Canceled","OrdStatus.Canceled") :: (("Model_app_enums.MOD_FIX_OrdStatus_PendingCancel","OrdStatus.PendingCancel") :: (("Model_app_enums.MOD_FIX_OrdStatus_Stopped","OrdStatus.Stopped") :: (("Model_app_enums.MOD_FIX_OrdStatus_Rejected","OrdStatus.Rejected") :: (("Model_app_enums.MOD_FIX_OrdStatus_Suspended","OrdStatus.Suspended") :: (("Model_app_enums.MOD_FIX_OrdStatus_PendingNew","OrdStatus.PendingNew") :: (("Model_app_enums.MOD_FIX_OrdStatus_Calculated","OrdStatus.Calculated") :: (("Model_app_enums.MOD_FIX_OrdStatus_Expired","OrdStatus.Expired") :: (("Model_app_enums.MOD_FIX_OrdStatus_AcceptedForBidding","OrdStatus.AcceptedForBidding") :: (("Model_app_enums.MOD_FIX_OrdStatus_PendingReplace","OrdStatus.PendingReplace") :: (("Model_app_enums.MOD_FIX_OrdStatus_Replaced","OrdStatus.Replaced") :: (("Model_app_enums.MOD_FIX_ExecType_New","ExecType.New") :: (("Model_app_enums.MOD_FIX_ExecType_DoneForDay","ExecType.DoneForDay") :: (("Model_app_enums.MOD_FIX_ExecType_Canceled","ExecType.Canceled") :: (("Model_app_enums.MOD_FIX_ExecType_Replaced","ExecType.Replaced") :: (("Model_app_enums.MOD_FIX_ExecType_PendingCancel","ExecType.PendingCancel") :: (("Model_app_enums.MOD_FIX_ExecType_Stopped","ExecType.Stopped") :: (("Model_app_enums.MOD_FIX_ExecType_Rejected","ExecType.Rejected") :: (("Model_app_enums.MOD_FIX_ExecType_Suspended","ExecType.Suspended") :: (("Model_app_enums.MOD_FIX_ExecType_PendingNew","ExecType.PendingNew") :: (("Model_app_enums.MOD_FIX_ExecType_Calculated","ExecType.Calculated") :: (("Model_app_enums.MOD_FIX_ExecType_Expired","ExecType.Expired") :: (("Model_app_enums.MOD_FIX_ExecType_Restated","ExecType.Restated") :: (("Model_app_enums.MOD_FIX_ExecType_PendingReplace","ExecType.PendingReplace") :: (("Model_app_enums.MOD_FIX_ExecType_Trade","ExecType.Trade") :: (("Model_app_enums.MOD_FIX_ExecType_TradeCorrect","ExecType.TradeCorrect") :: (("Model_app_enums.MOD_FIX_ExecType_TradeCancel","ExecType.TradeCancel") :: (("Model_app_enums.MOD_FIX_ExecType_OrderStatus","ExecType.OrderStatus") :: (("Model_tags.M_Field_ClOrdID_Tag","ClOrdID") :: (("Model_tags.M_Field_OrderID_Tag","OrderID") :: (("Model_tags.M_Field_ExecID_Tag","ExecID") :: (("Model_tags.M_Field_ExecType_Tag","ExecType") :: (("Model_tags.M_Field_AvgPx_Tag","AvgPx") :: (("Model_tags.M_Field_Side_Tag","Side") :: (("Model_tags.M_Field_LeavesQty_Tag","LeavesQty") :: (("Model_tags.M_Field_CumQty_Tag","CumQty") :: (("Model_tags.M_Field_OrdStatus_Tag","OrdStatus") :: (("Model_tags.M_Field_Symbol_Tag","Symbol") :: (("Model_tags.M_Field_Text_Tag","Text") :: (("Model_tags.M_Msg_ExecutionReport_Tag","ExecutionReport") :: (("Model_tags.M_Field_ClOrdID_Tag","ClOrdID") :: (("Model_tags.M_Field_Side_Tag","Side") :: (("Model_tags.M_Field_TransactTime_Tag","TransactTime") :: (("Model_tags.M_Field_OrdType_Tag","OrdType") :: (("Model_tags.M_Field_Symbol_Tag","Symbol") :: (("Model_tags.M_Msg_NewOrderSingle_Tag","NewOrderSingle") :: []))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));; +[@@@logic] \ No newline at end of file diff --git a/src-model/src-string-factory/string_checks.iml b/src-model/src-string-factory/string_checks.iml index 77eb10d9..98c51876 100644 --- a/src-model/src-string-factory/string_checks.iml +++ b/src-model/src-string-factory/string_checks.iml @@ -1,5 +1,8 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-types/actions.iml"] open Actions;; +[@@@import "../src-types/model_messages.iml"] open Model_messages;; let isAction (str : string) = @@ -214,3 +217,4 @@ let name_of_msg (x) = | FIX_TL_None -> "Msg:None" ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-model/src-types-pp/json_to_action.iml b/src-model/src-types-pp/json_to_action.iml index 43bbe78b..a4d6207c 100644 --- a/src-model/src-types-pp/json_to_action.iml +++ b/src-model/src-types-pp/json_to_action.iml @@ -1,7 +1,12 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-types/actions.iml"] open Actions;; +[@@@import "../../src-core-pp/base_types_json.iml"] open Base_types_json;; +[@@@import "../../src-core-pp/datetime_json.iml"] open Datetime_json;; +[@@@require "decoders-yojson"] open Decoders_yojson.Basic.Decode;; open Decoders_yojson.Basic.Decode.Infix;; @@ -20,3 +25,4 @@ let fix_action_decoder : fix_action decoder = ) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-model/src-types-pp/json_to_enum.iml b/src-model/src-types-pp/json_to_enum.iml index a0099144..7bcc51d6 100644 --- a/src-model/src-types-pp/json_to_enum.iml +++ b/src-model/src-types-pp/json_to_enum.iml @@ -1,7 +1,11 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@require "decoders-yojson"] open Decoders_yojson.Basic.Decode;; open Decoders_yojson.Basic.Decode.Infix;; +[@@@import "../src-types/model_app_enums.iml"] open Model_app_enums;; +[@@@import "../src-string-factory/model_enum_names.iml"] open Model_enum_names;; let mod_enum_side_decoder : model_fix_side decoder = @@ -35,3 +39,4 @@ let mod_enum_exectype_decoder : model_fix_exectype decoder = ) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-model/src-types-pp/json_to_message.iml b/src-model/src-types-pp/json_to_message.iml index 653971f3..587faf00 100644 --- a/src-model/src-types-pp/json_to_message.iml +++ b/src-model/src-types-pp/json_to_message.iml @@ -1,10 +1,17 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../../src-core-pp/base_types_json.iml"] open Base_types_json;; +[@@@import "../../src-core-pp/datetime_json.iml"] open Datetime_json;; +[@@@require "decoders-yojson"] open Decoders_yojson.Basic.Decode;; open Decoders_yojson.Basic.Decode.Infix;; +[@@@import "json_to_enum.iml"] open Json_to_enum;; +[@@@import "json_to_model_tag.iml"] open Json_to_model_tag;; +[@@@import "../src-types/model_messages.iml"] open Model_messages;; let mod_message_executionreport_decoder : mod_executionreport_data decoder = @@ -72,3 +79,4 @@ let top_level_message_decoder : model_top_level_msg decoder = ) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-model/src-types-pp/json_to_model_state.iml b/src-model/src-types-pp/json_to_model_state.iml index 59ee4b58..e4b8e786 100644 --- a/src-model/src-types-pp/json_to_model_state.iml +++ b/src-model/src-types-pp/json_to_model_state.iml @@ -1,8 +1,13 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@require "decoders-yojson"] open Decoders_yojson.Basic.Decode;; open Decoders_yojson.Basic.Decode.Infix;; +[@@@import "json_to_action.iml"] open Json_to_action;; +[@@@import "json_to_message.iml"] open Json_to_message;; +[@@@import "../src-types/state.iml"] open State;; let model_state_decoder : model_state decoder = @@ -15,3 +20,4 @@ let model_state_decoder : model_state decoder = ) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-model/src-types-pp/json_to_model_tag.iml b/src-model/src-types-pp/json_to_model_tag.iml index d1366376..a1e7207a 100644 --- a/src-model/src-types-pp/json_to_model_tag.iml +++ b/src-model/src-types-pp/json_to_model_tag.iml @@ -1,8 +1,13 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@require "decoders-yojson"] open Decoders_yojson.Basic.Decode;; open Decoders_yojson.Basic.Decode.Infix;; +[@@@import "../src-types/model_messages.iml"] open Model_messages;; +[@@@import "../src-string-factory/model_tag_names.iml"] open Model_tag_names;; +[@@@import "../src-types/model_tags.iml"] open Model_tags;; let message_tag_decoder : m_msg_tag decoder = @@ -29,3 +34,4 @@ let field_missing_data_decoder : field_missing_data decoder = ) ) ;; +[@@@logic] diff --git a/src-model/src-types-pp/model_actions_json.iml b/src-model/src-types-pp/model_actions_json.iml index 974e43fa..dde0280a 100644 --- a/src-model/src-types-pp/model_actions_json.iml +++ b/src-model/src-types-pp/model_actions_json.iml @@ -1,7 +1,12 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-types/actions.iml"] open Actions;; +[@@@import "../../src-core-pp/base_types_json.iml"] open Base_types_json;; +[@@@import "../../src-core-pp/datetime_json.iml"] open Datetime_json;; +[@@@import "../../src-protocol-exts-pp/json_generator_utils.iml"] open Json_generator_utils;; open Yojson;; @@ -14,3 +19,4 @@ let json_of_fix_action (x) : json = | FIX_Action_x x -> (`Assoc (("tag",`String "x") :: (("data",mod_act_x_to_json x) :: []))) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-model/src-types-pp/model_enums_json.iml b/src-model/src-types-pp/model_enums_json.iml index dc9adeab..691bd99a 100644 --- a/src-model/src-types-pp/model_enums_json.iml +++ b/src-model/src-types-pp/model_enums_json.iml @@ -1,4 +1,6 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-string-factory/model_enum_names.iml"] open Model_enum_names;; open Yojson;; @@ -45,3 +47,4 @@ let mod_exectype_opt_to_json (d) : json = | Some d -> (mod_exectype_to_json d) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-model/src-types-pp/model_internals_json.iml b/src-model/src-types-pp/model_internals_json.iml index 4199e86a..7d90c71a 100644 --- a/src-model/src-types-pp/model_internals_json.iml +++ b/src-model/src-types-pp/model_internals_json.iml @@ -1,6 +1,9 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-types/state.iml"] open State;; let json_of_fix_internals (x : internal_states_types) = `Assoc [] ;; +[@@@logic] \ No newline at end of file diff --git a/src-model/src-types-pp/model_messages_json.iml b/src-model/src-types-pp/model_messages_json.iml index 46bd6c1e..f45711ae 100644 --- a/src-model/src-types-pp/model_messages_json.iml +++ b/src-model/src-types-pp/model_messages_json.iml @@ -1,9 +1,16 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../../src-core-pp/base_types_json.iml"] open Base_types_json;; +[@@@import "../../src-core-pp/datetime_json.iml"] open Datetime_json;; +[@@@import "../../src-protocol-exts-pp/json_generator_utils.iml"] open Json_generator_utils;; +[@@@import "model_enums_json.iml"] open Model_enums_json;; +[@@@import "../src-types/model_messages.iml"] open Model_messages;; +[@@@import "model_tags_json.iml"] open Model_tags_json;; open Yojson;; @@ -34,3 +41,4 @@ let json_of_top_level_msg (x) : json = | FIX_TL_None -> `Null ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-model/src-types-pp/model_state_json.iml b/src-model/src-types-pp/model_state_json.iml index a00da6b6..4372ea4c 100644 --- a/src-model/src-types-pp/model_state_json.iml +++ b/src-model/src-types-pp/model_state_json.iml @@ -1,6 +1,10 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "model_actions_json.iml"] open Model_actions_json;; +[@@@import "model_messages_json.iml"] open Model_messages_json;; +[@@@import "../src-types/state.iml"] open State;; open Yojson;; @@ -12,3 +16,4 @@ let model_state_to_json (m_state) : json = ) :: (("incoming_msg",json_of_top_level_msg m_state.incoming_msg) :: (("outgoing_msgs",`List (List.map (fun y -> json_of_model_msg y ) m_state.outgoing_msgs)) :: []))) ;; +[@@@logic] \ No newline at end of file diff --git a/src-model/src-types-pp/model_tags_json.iml b/src-model/src-types-pp/model_tags_json.iml index 9eba4aec..abbb4a6b 100644 --- a/src-model/src-types-pp/model_tags_json.iml +++ b/src-model/src-types-pp/model_tags_json.iml @@ -1,5 +1,8 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-types/model_messages.iml"] open Model_messages;; +[@@@import "../src-types/model_tags.iml"] open Model_tags;; open Yojson;; @@ -22,3 +25,4 @@ let json_of_model_field_tag (x : m_field_tag) : json = let json_of_req_field_missing (x : field_missing_data) : json = `Assoc (("m_msg_tag",json_of_model_msg_tag x.field_missing_data_msg) :: (("m_field_tag",json_of_model_field_tag x.field_missing_data_field) :: [])) ;; +[@@@logic] \ No newline at end of file diff --git a/src-model/src-types/actions.iml b/src-model/src-types/actions.iml index a2e46196..247fa62a 100644 --- a/src-model/src-types/actions.iml +++ b/src-model/src-types/actions.iml @@ -1,5 +1,7 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "../../src-core/datetime.iml"] open Datetime;; +[@@@import "../../src-core/numeric.iml"] open Numeric;; type m_action_fix_x = { diff --git a/src-model/src-types/model_messages.iml b/src-model/src-types/model_messages.iml index 52ebb546..3f861db4 100644 --- a/src-model/src-types/model_messages.iml +++ b/src-model/src-types/model_messages.iml @@ -1,7 +1,11 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "../../src-core/datetime.iml"] open Datetime;; +[@@@import "model_app_enums.iml"] open Model_app_enums;; +[@@@import "model_tags.iml"] open Model_tags;; +[@@@import "../../src-core/numeric.iml"] open Numeric;; type mod_executionreport_data = { diff --git a/src-model/src-types/state.iml b/src-model/src-types/state.iml index e29a84ed..9f242e8c 100644 --- a/src-model/src-types/state.iml +++ b/src-model/src-types/state.iml @@ -1,5 +1,7 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "actions.iml"] open Actions;; +[@@@import "model_messages.iml"] open Model_messages;; type model_state = { diff --git a/src-model/src/act_checks.iml b/src-model/src/act_checks.iml index 137dcc87..5d5ccfcc 100644 --- a/src-model/src/act_checks.iml +++ b/src-model/src/act_checks.iml @@ -1,5 +1,7 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "../src-types/actions.iml"] open Actions;; +[@@@import "../src-types/state.iml"] open State;; let is_valid_action_x (action_data : m_action_fix_x) = diff --git a/src-model/src/act_process.iml b/src-model/src/act_process.iml index 7e0f115c..7cc3ef72 100644 --- a/src-model/src/act_process.iml +++ b/src-model/src/act_process.iml @@ -1,6 +1,9 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "act_checks.iml"] open Act_checks;; +[@@@import "../src-types/actions.iml"] open Actions;; +[@@@import "../src-types/state.iml"] open State;; let receive_action_x (m_state : model_state) (action_data : m_action_fix_x) = diff --git a/src-model/src/msg_check_fields.iml b/src-model/src/msg_check_fields.iml index cb0faca8..6b9d86e1 100644 --- a/src-model/src/msg_check_fields.iml +++ b/src-model/src/msg_check_fields.iml @@ -1,6 +1,9 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "../src-types/model_messages.iml"] open Model_messages;; +[@@@import "msg_check_types.iml"] open Msg_check_types;; +[@@@import "../src-types/state.iml"] open State;; let check_fields_NewOrderSingle (msg_data : mod_newordersingle_data) (m_state : model_state) = diff --git a/src-model/src/msg_check_validate.iml b/src-model/src/msg_check_validate.iml index 777fbeea..f4c207aa 100644 --- a/src-model/src/msg_check_validate.iml +++ b/src-model/src/msg_check_validate.iml @@ -1,6 +1,9 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "../src-types/model_messages.iml"] open Model_messages;; +[@@@import "msg_check_types.iml"] open Msg_check_types;; +[@@@import "../src-types/state.iml"] open State;; let check_validate_NewOrderSingle (msg_data : mod_newordersingle_data) (m_state : model_state) = diff --git a/src-model/src/msg_defaults.iml b/src-model/src/msg_defaults.iml index 0ef5ef18..6ca131be 100644 --- a/src-model/src/msg_defaults.iml +++ b/src-model/src/msg_defaults.iml @@ -1,4 +1,5 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "../src-types/model_messages.iml"] open Model_messages;; let assign_defaults_ExecutionReport (msg_data : mod_executionreport_data) = diff --git a/src-model/src/msg_process.iml b/src-model/src/msg_process.iml index d889aab0..1a27d1ce 100644 --- a/src-model/src/msg_process.iml +++ b/src-model/src/msg_process.iml @@ -1,11 +1,19 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "../src-types/model_messages.iml"] open Model_messages;; +[@@@import "msg_check_fields.iml"] open Msg_check_fields;; +[@@@import "msg_check_types.iml"] open Msg_check_types;; +[@@@import "msg_check_validate.iml"] open Msg_check_validate;; +[@@@import "msg_defaults.iml"] open Msg_defaults;; +[@@@import "msg_receive.iml"] open Msg_receive;; +[@@@import "msg_reject.iml"] open Msg_reject;; +[@@@import "../src-types/state.iml"] open State;; let process_NewOrderSingle (m_state : model_state) (msg_data : mod_newordersingle_data) = diff --git a/src-model/src/msg_receive.iml b/src-model/src/msg_receive.iml index 9f3475db..df255945 100644 --- a/src-model/src/msg_receive.iml +++ b/src-model/src/msg_receive.iml @@ -1,7 +1,11 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "../src-types/model_app_enums.iml"] open Model_app_enums;; +[@@@import "../src-types/model_messages.iml"] open Model_messages;; +[@@@import "../../src-core/numeric.iml"] open Numeric;; +[@@@import "../src-types/state.iml"] open State;; let receive_message_NewOrderSingle (m_state : model_state) (msg_data : mod_newordersingle_data) = diff --git a/src-model/src/msg_reject.iml b/src-model/src/msg_reject.iml index 5e095628..8c5631ce 100644 --- a/src-model/src/msg_reject.iml +++ b/src-model/src/msg_reject.iml @@ -1,8 +1,13 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "../src-types/model_app_enums.iml"] open Model_app_enums;; +[@@@import "../src-types/model_messages.iml"] open Model_messages;; +[@@@import "../src-types/model_tags.iml"] open Model_tags;; +[@@@import "../../src-core/numeric.iml"] open Numeric;; +[@@@import "../src-types/state.iml"] open State;; let reject_NewOrderSingle_missingfield (m_state : model_state) (reject_text : string) = diff --git a/src-model/src/venue.iml b/src-model/src/venue.iml index a30af6fc..19cbf574 100644 --- a/src-model/src/venue.iml +++ b/src-model/src/venue.iml @@ -1,7 +1,11 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "act_process.iml"] open Act_process;; +[@@@import "../src-types/model_messages.iml"] open Model_messages;; +[@@@import "msg_process.iml"] open Msg_process;; +[@@@import "../src-types/state.iml"] open State;; let one_step (m_state : model_state) = diff --git a/src-protocol-exts-pp-vg/full_app_enums_json.iml b/src-protocol-exts-pp-vg/full_app_enums_json.iml index d78be282..2ba70a77 100644 --- a/src-protocol-exts-pp-vg/full_app_enums_json.iml +++ b/src-protocol-exts-pp-vg/full_app_enums_json.iml @@ -7,8 +7,9 @@ full_app_enums_json.ml *) - +[@@@program] open Yojson;; +[@@@import "../src-protocol-exts-vg/full_app_enums.iml"] open Full_app_enums;; @@ -323,4 +324,5 @@ let exchange_opt_to_json ( d ) : json = match d with | None -> (`Null) | Some d -> (exchange_to_json d) -;; \ No newline at end of file +;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp-vg/full_app_messages_json.iml b/src-protocol-exts-pp-vg/full_app_messages_json.iml index 427582ed..58fd96dd 100644 --- a/src-protocol-exts-pp-vg/full_app_messages_json.iml +++ b/src-protocol-exts-pp-vg/full_app_messages_json.iml @@ -7,11 +7,17 @@ full_app_messages_json.ml *) +[@@@program] open Yojson;; +[@@@import "../src-protocol-exts/full_app_messages.iml"] open Full_app_messages;; +[@@@import "../src-core-pp/base_types_json.iml"] open Base_types_json;; +[@@@import "full_app_enums_json.iml"] open Full_app_enums_json;; +[@@@import "full_app_records_json.iml"] open Full_app_records_json;; +[@@@import "../src-core-time-defaults-pp/timeDefaults_json.iml"] open TimeDefaults_json;; let assoc_filter_nulls l : json = @@ -105,4 +111,5 @@ let full_app_msg_to_json x : json = match x with `Assoc [( "NewOrderSingle" , full_msg_new_order_single_to_json x )] | Full_Msg_CancelReject x -> `Assoc [( "CancelReject" , full_msg_cancel_reject_to_json x )] -;; \ No newline at end of file +;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp-vg/full_app_records_json.iml b/src-protocol-exts-pp-vg/full_app_records_json.iml index 549dc3b8..618613a1 100644 --- a/src-protocol-exts-pp-vg/full_app_records_json.iml +++ b/src-protocol-exts-pp-vg/full_app_records_json.iml @@ -8,11 +8,15 @@ *) - +[@@@program] open Yojson;; +[@@@import "../src-protocol-exts-vg/full_app_records.iml"] open Full_app_records;; +[@@@import "../src-core-pp/base_types_json.iml"] open Base_types_json;; +[@@@import "../src-core-pp/datetime_json.iml"] open Datetime_json;; +[@@@import "full_app_enums_json.iml"] open Full_app_enums_json;; @@ -29,4 +33,5 @@ let instrument_to_json x : json = ; ( "Symbol" , string_opt_to_json x.f_Instrument_Symbol ) ; ( "SymbolSfx" , string_opt_to_json x.f_Instrument_SymbolSfx ) ] -;; \ No newline at end of file +;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp-vg/full_app_tags_json.iml b/src-protocol-exts-pp-vg/full_app_tags_json.iml index 30b1ec85..4f69d28f 100644 --- a/src-protocol-exts-pp-vg/full_app_tags_json.iml +++ b/src-protocol-exts-pp-vg/full_app_tags_json.iml @@ -7,8 +7,9 @@ full_app_tags_json.ml *) - +[@@@program] open Yojson;; +[@@@import "../src-protocol-exts-vg/full_app_tags.iml"] open Full_app_tags;; @@ -62,4 +63,5 @@ let full_app_msg_tag_opt_to_json = function None -> `Null | Some x -> full_app_ let full_app_field_tag_to_json x : json = `String ( full_app_field_tag_to_string x ) ;; -let full_app_field_tag_opt_to_json = function None -> `Null | Some x -> full_app_field_tag_to_json x ;; \ No newline at end of file +let full_app_field_tag_opt_to_json = function None -> `Null | Some x -> full_app_field_tag_to_json x ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp-vg/parse_app_enums.iml b/src-protocol-exts-pp-vg/parse_app_enums.iml index ee30241e..fa6cf30d 100644 --- a/src-protocol-exts-pp-vg/parse_app_enums.iml +++ b/src-protocol-exts-pp-vg/parse_app_enums.iml @@ -8,7 +8,8 @@ *) - +[@@@program] +[@@@import "../src-protocol-exts-vg/full_app_enums.iml"] open Full_app_enums;; let parse_pricetype = function @@ -269,3 +270,4 @@ let parse_Exchange ( str ) = | "SHSC" -> (Some (FIX_Exchange_SHSC)) | _ -> (None) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp-vg/parse_app_messages.iml b/src-protocol-exts-pp-vg/parse_app_messages.iml index fb19e09f..74c9d544 100644 --- a/src-protocol-exts-pp-vg/parse_app_messages.iml +++ b/src-protocol-exts-pp-vg/parse_app_messages.iml @@ -8,13 +8,20 @@ *) - +[@@@program] +[@@@import "../src-core-pp/parser_utils.iml"] open Parser_utils.Parser;; +[@@@import "../src-protocol-exts-vg/full_app_tags.iml"] open Full_app_tags;; +[@@@import "../src-protocol-exts-vg/full_app_messages.iml"] open Full_app_messages;; +[@@@import "../src-core-pp/parse_base_types.iml"] open Parse_base_types;; +[@@@import "parse_app_enums.iml"] open Parse_app_enums;; +[@@@import "parse_app_records.iml"] open Parse_app_records;; +[@@@import "../src-core-time-defaults-pp/timeDefaults_parser.iml"] open TimeDefaults_parser;; @@ -168,3 +175,4 @@ let parse_app_msg_data msg_tag msg = | Full_Msg_NewOrderSingle_Tag -> ((>>=) (fst (parse_msg_new_order_single_data msg)) (fun f -> ParseSuccess (Full_Msg_NewOrderSingle f))) | Full_Msg_CancelReject_Tag -> ((>>=) (fst (parse_msg_cancel_reject_data msg)) (fun f -> ParseSuccess (Full_Msg_CancelReject f))) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp-vg/parse_app_records.iml b/src-protocol-exts-pp-vg/parse_app_records.iml index e707a868..63452124 100644 --- a/src-protocol-exts-pp-vg/parse_app_records.iml +++ b/src-protocol-exts-pp-vg/parse_app_records.iml @@ -7,10 +7,16 @@ parse_app_records.ml *) +[@@@program] +[@@@import "../src-core-pp/parser_utils.iml"] open Parser_utils.Parser;; +[@@@import "../src-protocol-exts-vg/full_app_records.iml"] open Full_app_records;; +[@@@import "../src-core-pp/parse_base_types.iml"] open Parse_base_types;; +[@@@import "../src-core-pp/parse_datetime.iml"] open Parse_datetime;; +[@@@import "parse_app_enums.iml"] open Parse_app_enums;; @@ -28,3 +34,4 @@ let parse_Instrument msg = ; f_Instrument_SymbolSfx },msg) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp-vg/parse_app_tags.iml b/src-protocol-exts-pp-vg/parse_app_tags.iml index f4823805..c227a467 100644 --- a/src-protocol-exts-pp-vg/parse_app_tags.iml +++ b/src-protocol-exts-pp-vg/parse_app_tags.iml @@ -7,7 +7,8 @@ parse_app_tags.ml *) - +[@@@program] +[@@@import "../src-protocol-exts-vg/full_app_tags.iml"] open Full_app_tags;; @@ -51,3 +52,4 @@ let parse_app_field_tag = function | "65" -> Some Full_Msg_SymbolSfx_Tag | _ -> None ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp/encode_app_enums.iml b/src-protocol-exts-pp/encode_app_enums.iml index ab2d98d0..7da92d38 100644 --- a/src-protocol-exts-pp/encode_app_enums.iml +++ b/src-protocol-exts-pp/encode_app_enums.iml @@ -1,5 +1,8 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-protocol-exts/full_app_enums.iml"] open Full_app_enums;; +[@@@import "../src-core-pp/parser_utils.iml"] open Parser_utils.Parser;; let encode_week (d) = @@ -2852,3 +2855,4 @@ let encode_Exchange (d) = | FIX_Exchange_SHSC -> "SHSC" ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp/encode_app_messages.iml b/src-protocol-exts-pp/encode_app_messages.iml index 84f373b4..f88d4e02 100644 --- a/src-protocol-exts-pp/encode_app_messages.iml +++ b/src-protocol-exts-pp/encode_app_messages.iml @@ -1,9 +1,16 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "encode_app_enums.iml"] open Encode_app_enums;; +[@@@import "encode_app_records.iml"] open Encode_app_records;; +[@@@import "../src-core-pp/encode_base_types.iml"] open Encode_base_types;; +[@@@import "../src-core-pp/encode_datetime.iml"] open Encode_datetime;; +[@@@import "encode_utils.iml"] open Encode_utils;; +[@@@import "../src-protocol-exts/full_app_messages.iml"] open Full_app_messages;; let encode_ExecutionReport (msg) = @@ -20,3 +27,4 @@ let encode_app_msg_data (msg) = | FIX_Full_Msg_NewOrderSingle msg -> (encode_NewOrderSingle msg) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp/encode_app_records.iml b/src-protocol-exts-pp/encode_app_records.iml index 7408694c..ffe4a375 100644 --- a/src-protocol-exts-pp/encode_app_records.iml +++ b/src-protocol-exts-pp/encode_app_records.iml @@ -1,8 +1,14 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "encode_app_enums.iml"] open Encode_app_enums;; +[@@@import "../src-core-pp/encode_base_types.iml"] open Encode_base_types;; +[@@@import "../src-core-pp/encode_datetime.iml"] open Encode_datetime;; +[@@@import "encode_utils.iml"] open Encode_utils;; +[@@@import "../src-protocol-exts/full_app_records.iml"] open Full_app_records;; let encode_LogonMsgTypes (msg) = @@ -424,3 +430,4 @@ let encode_SettlInstGrp (msg) = let encode_AllocGrp (msg) = (@) (encode_SettlInstructionsData msg.f_AllocGrp_SettlInstructionsData) ((@) (encode_CommissionData msg.f_AllocGrp_CommissionData) ((@) (("79",enc_opt encode_string msg.f_AllocGrp_AllocAccount) :: (("661",enc_opt encode_int msg.f_AllocGrp_AllocAcctIDSource) :: (("573",enc_opt encode_MatchStatus msg.f_AllocGrp_MatchStatus) :: (("366",enc_opt encode_float_6 msg.f_AllocGrp_AllocPrice) :: (("80",enc_opt encode_float_6 msg.f_AllocGrp_AllocQty) :: (("467",enc_opt encode_string msg.f_AllocGrp_IndividualAllocID) :: (("81",enc_opt encode_ProcessCode msg.f_AllocGrp_ProcessCode) :: (("208",enc_opt encode_NotifyBrokerOfCredit msg.f_AllocGrp_NotifyBrokerOfCredit) :: (("209",enc_opt encode_AllocHandlInst msg.f_AllocGrp_AllocHandlInst) :: (("161",enc_opt encode_string msg.f_AllocGrp_AllocText) :: (("360",enc_opt encode_int msg.f_AllocGrp_EncodedAllocTextLen) :: (("361",enc_opt encode_string msg.f_AllocGrp_EncodedAllocText) :: (("153",enc_opt encode_float_6 msg.f_AllocGrp_AllocAvgPx) :: (("154",enc_opt encode_float_6 msg.f_AllocGrp_AllocNetMoney) :: (("119",enc_opt encode_float_6 msg.f_AllocGrp_SettlCurrAmt) :: (("737",enc_opt encode_float_6 msg.f_AllocGrp_AllocSettlCurrAmt) :: (("120",enc_opt encode_Currency msg.f_AllocGrp_SettlCurrency) :: (("736",enc_opt encode_Currency msg.f_AllocGrp_AllocSettlCurrency) :: (("155",enc_opt encode_float msg.f_AllocGrp_SettlCurrFxRate) :: (("156",enc_opt encode_SettlCurrFxRateCalc msg.f_AllocGrp_SettlCurrFxRateCalc) :: (("742",enc_opt encode_float_6 msg.f_AllocGrp_AllocAccruedInterestAmt) :: (("741",enc_opt encode_float_6 msg.f_AllocGrp_AllocInterestAtMaturity) :: (("780",enc_opt encode_AllocSettlInstType msg.f_AllocGrp_AllocSettlInstType) :: []))))))))))))))))))))))) ((@) (enc_repeat encode_ClrInstGrp "576" msg.f_AllocGrp_ClrInstGrp) ((@) (enc_repeat encode_MiscFeesGrp "136" msg.f_AllocGrp_MiscFeesGrp) ((@) (enc_repeat encode_NestedParties "539" msg.f_AllocGrp_NestedParties) []))))) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp/encode_app_tags.iml b/src-protocol-exts-pp/encode_app_tags.iml index 619db14a..d6e95f11 100644 --- a/src-protocol-exts-pp/encode_app_tags.iml +++ b/src-protocol-exts-pp/encode_app_tags.iml @@ -1,4 +1,6 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-protocol-exts/full_app_tags.iml"] open Full_app_tags;; let encode_app_msg_tag (d) = @@ -385,3 +387,4 @@ let encode_app_field_tag (d) = | Full_Field_NoTradingSessions_Tag -> ("386") ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp/encode_utils.iml b/src-protocol-exts-pp/encode_utils.iml index ffe1705a..84e7523d 100644 --- a/src-protocol-exts-pp/encode_utils.iml +++ b/src-protocol-exts-pp/encode_utils.iml @@ -1,5 +1,8 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-core-pp/encode_base_types.iml"] open Encode_base_types;; +[@@@import "../src-core-pp/encode_datetime.iml"] open Encode_datetime;; let enc_req (f) (x) = @@ -20,3 +23,4 @@ let enc_repeat (f) (tag) (lst) = ) []))) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp/full_app_enums_json.iml b/src-protocol-exts-pp/full_app_enums_json.iml index 1f18fd34..68a551df 100644 --- a/src-protocol-exts-pp/full_app_enums_json.iml +++ b/src-protocol-exts-pp/full_app_enums_json.iml @@ -1,4 +1,6 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-protocol-exts/full_app_enums.iml"] open Full_app_enums;; open Yojson;; @@ -5512,3 +5514,4 @@ let exchange_opt_to_json (d) : json = | Some d -> (exchange_to_json d) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp/full_app_messages_json.iml b/src-protocol-exts-pp/full_app_messages_json.iml index 9664ee30..2468a478 100644 --- a/src-protocol-exts-pp/full_app_messages_json.iml +++ b/src-protocol-exts-pp/full_app_messages_json.iml @@ -1,9 +1,16 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-core-pp/base_types_json.iml"] open Base_types_json;; +[@@@import "../src-core-pp/datetime_json.iml"] open Datetime_json;; +[@@@import "full_app_enums_json.iml"] open Full_app_enums_json;; +[@@@import "../src-protocol-exts/full_app_messages.iml"] open Full_app_messages;; +[@@@import "full_app_records_json.iml"] open Full_app_records_json;; +[@@@import "json_generator_utils.iml"] open Json_generator_utils;; open Yojson;; @@ -21,3 +28,4 @@ let full_app_msg_to_json (x) : json = | FIX_Full_Msg_NewOrderSingle x -> (`Assoc (("NewOrderSingle",newordersingle_to_json x) :: [])) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp/full_app_records_json.iml b/src-protocol-exts-pp/full_app_records_json.iml index 8dca2871..ad695a22 100644 --- a/src-protocol-exts-pp/full_app_records_json.iml +++ b/src-protocol-exts-pp/full_app_records_json.iml @@ -1,8 +1,14 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-core-pp/base_types_json.iml"] open Base_types_json;; +[@@@import "../src-core-pp/datetime_json.iml"] open Datetime_json;; +[@@@import "full_app_enums_json.iml"] open Full_app_enums_json;; +[@@@import "../src-protocol-exts/full_app_records.iml"] open Full_app_records;; +[@@@import "json_generator_utils.iml"] open Json_generator_utils;; open Yojson;; @@ -845,3 +851,4 @@ let allocgrp_to_string (d) = let allocgrp_to_json (x) : json = assoc_filter_nulls (("CommissionData",commissiondata_to_json x.f_AllocGrp_CommissionData) :: (("SettlInstructionsData",settlinstructionsdata_to_json x.f_AllocGrp_SettlInstructionsData) :: (("NoAllocs",int_opt_to_json x.f_AllocGrp_NoAllocs) :: (("AllocAccount",string_opt_to_json x.f_AllocGrp_AllocAccount) :: (("AllocAcctIDSource",int_opt_to_json x.f_AllocGrp_AllocAcctIDSource) :: (("MatchStatus",matchstatus_opt_to_json x.f_AllocGrp_MatchStatus) :: (("AllocPrice",float_6_opt_to_json x.f_AllocGrp_AllocPrice) :: (("AllocQty",float_6_opt_to_json x.f_AllocGrp_AllocQty) :: (("IndividualAllocID",string_opt_to_json x.f_AllocGrp_IndividualAllocID) :: (("ProcessCode",processcode_opt_to_json x.f_AllocGrp_ProcessCode) :: (("NotifyBrokerOfCredit",notifybrokerofcredit_opt_to_json x.f_AllocGrp_NotifyBrokerOfCredit) :: (("AllocHandlInst",allochandlinst_opt_to_json x.f_AllocGrp_AllocHandlInst) :: (("AllocText",string_opt_to_json x.f_AllocGrp_AllocText) :: (("EncodedAllocTextLen",int_opt_to_json x.f_AllocGrp_EncodedAllocTextLen) :: (("EncodedAllocText",string_opt_to_json x.f_AllocGrp_EncodedAllocText) :: (("AllocAvgPx",float_6_opt_to_json x.f_AllocGrp_AllocAvgPx) :: (("AllocNetMoney",float_6_opt_to_json x.f_AllocGrp_AllocNetMoney) :: (("SettlCurrAmt",float_6_opt_to_json x.f_AllocGrp_SettlCurrAmt) :: (("AllocSettlCurrAmt",float_6_opt_to_json x.f_AllocGrp_AllocSettlCurrAmt) :: (("SettlCurrency",currency_opt_to_json x.f_AllocGrp_SettlCurrency) :: (("AllocSettlCurrency",currency_opt_to_json x.f_AllocGrp_AllocSettlCurrency) :: (("SettlCurrFxRate",float_opt_to_json x.f_AllocGrp_SettlCurrFxRate) :: (("SettlCurrFxRateCalc",settlcurrfxratecalc_opt_to_json x.f_AllocGrp_SettlCurrFxRateCalc) :: (("AllocAccruedInterestAmt",float_6_opt_to_json x.f_AllocGrp_AllocAccruedInterestAmt) :: (("AllocInterestAtMaturity",float_6_opt_to_json x.f_AllocGrp_AllocInterestAtMaturity) :: (("AllocSettlInstType",allocsettlinsttype_opt_to_json x.f_AllocGrp_AllocSettlInstType) :: (("NestedParties",rg_for_json nestedparties_to_json x.f_AllocGrp_NestedParties) :: (("MiscFeesGrp",rg_for_json miscfeesgrp_to_json x.f_AllocGrp_MiscFeesGrp) :: (("ClrInstGrp",rg_for_json clrinstgrp_to_json x.f_AllocGrp_ClrInstGrp) :: []))))))))))))))))))))))))))))) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp/full_app_tags_json.iml b/src-protocol-exts-pp/full_app_tags_json.iml index e3eafef1..8390ae6a 100644 --- a/src-protocol-exts-pp/full_app_tags_json.iml +++ b/src-protocol-exts-pp/full_app_tags_json.iml @@ -1,4 +1,6 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-protocol-exts/full_app_tags.iml"] open Full_app_tags;; open Yojson;; @@ -408,3 +410,4 @@ let full_app_field_tag_opt_to_json (tag) : json = | Some tag -> (full_app_field_tag_to_json tag) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp/json_generator_utils.iml b/src-protocol-exts-pp/json_generator_utils.iml index 39742440..148a8257 100644 --- a/src-protocol-exts-pp/json_generator_utils.iml +++ b/src-protocol-exts-pp/json_generator_utils.iml @@ -1,4 +1,5 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] open Yojson;; let assoc_filter_nulls (x) : json = @@ -12,3 +13,4 @@ let rg_for_json (f) (lst) : json = | lst -> (`List (List.map f lst)) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp/parse_app_enums.iml b/src-protocol-exts-pp/parse_app_enums.iml index 5a44ee2b..e09cf74a 100644 --- a/src-protocol-exts-pp/parse_app_enums.iml +++ b/src-protocol-exts-pp/parse_app_enums.iml @@ -1,5 +1,8 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-protocol-exts/full_app_enums.iml"] open Full_app_enums;; +[@@@import "../src-core-pp/parser_utils.iml"] open Parser_utils.Parser;; let parse_week (str) = @@ -3192,3 +3195,4 @@ let parse_Exchange (str) = | _ -> (None) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp/parse_app_messages.iml b/src-protocol-exts-pp/parse_app_messages.iml index 860ccf38..a9768f27 100644 --- a/src-protocol-exts-pp/parse_app_messages.iml +++ b/src-protocol-exts-pp/parse_app_messages.iml @@ -1,10 +1,18 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-protocol-exts/full_app_messages.iml"] open Full_app_messages;; +[@@@import "../src-protocol-exts/full_app_tags.iml"] open Full_app_tags;; +[@@@import "parse_app_enums.iml"] open Parse_app_enums;; +[@@@import "parse_app_records.iml"] open Parse_app_records;; +[@@@import "../src-core-pp/parse_base_types.iml"] open Parse_base_types;; +[@@@import "../src-core-pp/parse_datetime.iml"] open Parse_datetime;; +[@@@import "../src-core-pp/parser_utils.iml"] open Parser_utils.Parser;; let parse_ExecutionReport (msg) = @@ -455,3 +463,4 @@ let parse_app_msg_data (msg_tag) (msg) = )) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp/parse_app_records.iml b/src-protocol-exts-pp/parse_app_records.iml index f488201c..2455ef7c 100644 --- a/src-protocol-exts-pp/parse_app_records.iml +++ b/src-protocol-exts-pp/parse_app_records.iml @@ -1,8 +1,14 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-protocol-exts/full_app_records.iml"] open Full_app_records;; +[@@@import "parse_app_enums.iml"] open Parse_app_enums;; +[@@@import "../src-core-pp/parse_base_types.iml"] open Parse_base_types;; +[@@@import "../src-core-pp/parse_datetime.iml"] open Parse_datetime;; +[@@@import "../src-core-pp/parser_utils.iml"] open Parser_utils.Parser;; let parse_LogonMsgTypes (msg) = @@ -2673,3 +2679,4 @@ let parse_AllocGrp (msg) = ) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-pp/parse_app_tags.iml b/src-protocol-exts-pp/parse_app_tags.iml index d241c746..705b06d4 100644 --- a/src-protocol-exts-pp/parse_app_tags.iml +++ b/src-protocol-exts-pp/parse_app_tags.iml @@ -1,4 +1,6 @@ (* Aesthetic Integration copyright 2018 *) +[@@@program] +[@@@import "../src-protocol-exts/full_app_tags.iml"] open Full_app_tags;; let parse_app_msg_tag (tag) = @@ -387,3 +389,4 @@ let parse_app_field_tag (tag) = | _ -> (None) ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-exts-vg/full_app_messages.iml b/src-protocol-exts-vg/full_app_messages.iml index 08478ec3..d9affb46 100644 --- a/src-protocol-exts-vg/full_app_messages.iml +++ b/src-protocol-exts-vg/full_app_messages.iml @@ -7,11 +7,15 @@ full_app_messages.ml *) - +[@@@import "../src-core/numeric.iml"] open Numeric;; +[@@@import "full_app_enums.iml"] open Full_app_enums;; +[@@@import "full_app_tags.iml"] open Full_app_tags;; +[@@@import "full_app_records.iml"] open Full_app_records;; +[@@@import "../src-core-time-defaults/timeDefaults.iml"] open TimeDefaults;; (** New Order Single message data. {{: http://www.onixs.biz/fix-dictionary/4.4/msgType_D_68.html} More details. } *) diff --git a/src-protocol-exts-vg/full_app_records.iml b/src-protocol-exts-vg/full_app_records.iml index fd7f5291..50b57ea5 100644 --- a/src-protocol-exts-vg/full_app_records.iml +++ b/src-protocol-exts-vg/full_app_records.iml @@ -8,8 +8,9 @@ *) - +[@@@import "../src-core/datetime.iml"] open Datetime;; +[@@@import "full_app_enums.iml"] open Full_app_enums;; diff --git a/src-protocol-exts/full_app_messages.iml b/src-protocol-exts/full_app_messages.iml index 6793f886..ec096ce9 100644 --- a/src-protocol-exts/full_app_messages.iml +++ b/src-protocol-exts/full_app_messages.iml @@ -1,8 +1,13 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "../src-core/datetime.iml"] open Datetime;; +[@@@import "full_app_enums.iml"] open Full_app_enums;; +[@@@import "full_app_records.iml"] open Full_app_records;; +[@@@import "full_app_tags.iml"] open Full_app_tags;; +[@@@import "../src-core/numeric.iml"] open Numeric;; (** The execution report message is used to: diff --git a/src-protocol-exts/full_app_records.iml b/src-protocol-exts/full_app_records.iml index 7becef9b..a41e4fe1 100644 --- a/src-protocol-exts/full_app_records.iml +++ b/src-protocol-exts/full_app_records.iml @@ -1,6 +1,9 @@ (* Aesthetic Integration copyright 2018 *) +[@@@import "../src-core/datetime.iml"] open Datetime;; +[@@@import "full_app_enums.iml"] open Full_app_enums;; +[@@@import "../src-core/numeric.iml"] open Numeric;; type fix_rg_inner_logonmsgtypes = { diff --git a/src-protocol-pp/encode_admin_enums.iml b/src-protocol-pp/encode_admin_enums.iml index 09d4c931..872dc7f7 100644 --- a/src-protocol-pp/encode_admin_enums.iml +++ b/src-protocol-pp/encode_admin_enums.iml @@ -7,7 +7,8 @@ parse_admin_enums.ml *) - +[@@@program] +[@@@import "../src-protocol/full_admin_enums.iml"] open Full_admin_enums;; @@ -70,3 +71,4 @@ let encode_MsgDirection ( d ) = | FIX_MsgDirection_Receive -> "R" ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-pp/encode_admin_messages.iml b/src-protocol-pp/encode_admin_messages.iml index 3b0f3d0c..aff347d7 100644 --- a/src-protocol-pp/encode_admin_messages.iml +++ b/src-protocol-pp/encode_admin_messages.iml @@ -7,12 +7,18 @@ parse_admin_messages.ml *) - +[@@@program] +[@@@import "../src-protocol/full_admin_messages.iml"] open Full_admin_messages;; +[@@@import "../src-core-pp/encode_base_types.iml"] open Encode_base_types;; +[@@@import "../src-core-pp/encode_datetime.iml"] open Encode_datetime;; +[@@@import "encode_admin_enums.iml"] open Encode_admin_enums;; +[@@@import "encode_full_tags.iml"] open Encode_full_tags;; +[@@@import "src-core/datetime.iml"] open Datetime;; let req f x = Some (f x);; @@ -111,3 +117,4 @@ let encode_admin_msg_data msg = | Full_Msg_Logon msg -> encode_msg_logon_data msg | Full_Msg_Business_Reject msg -> encode_msg_business_reject_data msg ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-pp/encode_admin_tags.iml b/src-protocol-pp/encode_admin_tags.iml index 1a669dd0..86125719 100644 --- a/src-protocol-pp/encode_admin_tags.iml +++ b/src-protocol-pp/encode_admin_tags.iml @@ -7,7 +7,8 @@ parse_admin_tags.ml *) - +[@@@program] +[@@@import "../src-protocol/full_admin_tags.iml"] open Full_admin_tags;; @@ -77,5 +78,5 @@ let encode_admin_field_tag = function | Full_Msg_NoHops_Tag -> "627" | Full_Msg_NextExpectedMsgSeqNum_Tag -> "789" ;; - +[@@@logic] diff --git a/src-protocol-pp/encode_full_messages.iml b/src-protocol-pp/encode_full_messages.iml index af20a857..b334a991 100644 --- a/src-protocol-pp/encode_full_messages.iml +++ b/src-protocol-pp/encode_full_messages.iml @@ -7,12 +7,19 @@ parse_full_messages.ml *) - +[@@@program] +[@@@import "../src-protocol/full_messages.iml"] open Full_messages +[@@@import "../src-core-pp/encode_base_types.iml"] open Encode_base_types +[@@@import "encode_full_tags.iml"] open Encode_full_tags +[@@@import "../src-core-time-defaults-pp/timeDefaults_pp.iml"] open TimeDefaults_pp +[@@@import "../src-core-utils/fix_version.iml"] open Fix_version +[@@@import "encode_admin_messages.iml"] +[@@@import "../src-protocol-exts-pp/encode_app_messages.iml"] let req f x = Some (f x);; let opt f v = match v with Some x -> Some ( f x ) | None -> None;; @@ -110,3 +117,4 @@ let encode_full_valid_msg x = |> List.map ( fun(k,v) -> k^"="^v ) |> List.fold_left ( fun a s -> a ^ s ^ "\001" ) "" ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-pp/encode_full_tags.iml b/src-protocol-pp/encode_full_tags.iml index 5d9286d3..579ebe72 100644 --- a/src-protocol-pp/encode_full_tags.iml +++ b/src-protocol-pp/encode_full_tags.iml @@ -7,9 +7,12 @@ parse_full_tags.ml *) - +[@@@program] +[@@@import "../src-protocol/full_message_tags.iml"] open Full_message_tags;; +[@@@import "../src-protocol-exts-pp/encode_app_tags.iml"] open Encode_app_tags;; +[@@@import "encode_admin_tags.iml"] open Encode_admin_tags;; @@ -25,3 +28,4 @@ let encode_full_field_tag tag = | Full_Admin_Field_Tag tag -> encode_admin_field_tag tag | Full_App_Field_Tag tag -> encode_app_field_tag tag ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-pp/fix_engine_json.iml b/src-protocol-pp/fix_engine_json.iml index 59dd8689..fa469bc8 100644 --- a/src-protocol-pp/fix_engine_json.iml +++ b/src-protocol-pp/fix_engine_json.iml @@ -7,13 +7,19 @@ fix_engine_json.ml *) - +[@@@program] open Yojson +[@@@import "../src/fix_engine_state.iml"] open Fix_engine_state +[@@@import "../src-core-pp/datetime_json.iml"] open Datetime_json +[@@@import "../src-core-pp/base_types_json.iml"] open Base_types_json +[@@@import "../src-protocol-exts-pp/full_app_messages_json.iml"] open Full_app_messages_json +[@@@import "full_messages_json.iml"] open Full_messages_json +[@@@import "../src-core-time-defaults-pp/timeDefaults_json.iml"] open TimeDefaults_json @@ -95,3 +101,4 @@ let engine_state_to_str s = let print_states states = String.concat "\n" (List.map engine_state_to_str states) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-pp/full_admin_enums_json.iml b/src-protocol-pp/full_admin_enums_json.iml index a414011a..9bc3ce03 100644 --- a/src-protocol-pp/full_admin_enums_json.iml +++ b/src-protocol-pp/full_admin_enums_json.iml @@ -7,8 +7,9 @@ full_admin_enums_json.ml *) - +[@@@program] open Yojson;; +[@@@import "../src-protocol/full_admin_enums.iml"] open Full_admin_enums;; @@ -107,3 +108,4 @@ let encryption_method_opt_to_json = function None -> `Null | Some x -> encr (** *) let msgdirection_opt_to_json = function None -> `Null | Some x -> msgdirection_to_json x ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-pp/full_admin_messages_json.iml b/src-protocol-pp/full_admin_messages_json.iml index 0dcc1d2a..f2abe905 100644 --- a/src-protocol-pp/full_admin_messages_json.iml +++ b/src-protocol-pp/full_admin_messages_json.iml @@ -7,12 +7,17 @@ full_admin_messages_json.ml *) - +[@@@program] open Yojson;; +[@@@import "../src-protocol/full_admin_messages.iml"] open Full_admin_messages;; +[@@@import "../src-core-pp/base_types_json.iml"] open Base_types_json;; +[@@@import "../src-core-pp/datetime_json.iml"] open Datetime_json;; +[@@@import "full_admin_enums_json.iml"] open Full_admin_enums_json;; +[@@@import "../src-protocol-pp/full_message_tags_json.iml"] open Full_message_tags_json;; (** *) @@ -115,3 +120,4 @@ let full_admin_msg_to_json x : json = match x with | Full_Msg_Sequence_Reset x -> `Assoc [ ( "Sequence_Reset" , full_msg_sequence_reset_to_json x ) ] | Full_Msg_Test_Request x -> `Assoc [ ( "Test_Request" , full_msg_test_request_to_json x ) ] ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-pp/full_admin_tags_json.iml b/src-protocol-pp/full_admin_tags_json.iml index d5d274fb..c8ab6b88 100644 --- a/src-protocol-pp/full_admin_tags_json.iml +++ b/src-protocol-pp/full_admin_tags_json.iml @@ -7,8 +7,9 @@ full_admin_tags_json.ml *) - +[@@@program] open Yojson;; +[@@@import "../src-protocol/full_admin_tags.iml"] open Full_admin_tags;; @@ -88,3 +89,4 @@ let full_admin_msg_tag_opt_to_json = function None -> `Null | Some x -> full_adm let full_admin_field_tag_to_json x : json = `String (full_admin_field_tag_to_string x );; let full_admin_field_tag_opt_to_json = function None -> `Null | Some x -> full_admin_field_tag_to_json x ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-pp/full_message_tags_json.iml b/src-protocol-pp/full_message_tags_json.iml index c2b8775b..22e98da8 100644 --- a/src-protocol-pp/full_message_tags_json.iml +++ b/src-protocol-pp/full_message_tags_json.iml @@ -7,9 +7,12 @@ full_message_tags_json.ml *) - +[@@@program] +[@@@import "../src-protocol/full_message_tags.iml"] open Full_message_tags;; +[@@@import "../src-protocol-exts-pp/full_app_tags_json.iml"] open Full_app_tags_json;; +[@@@import "full_admin_tags_json.iml"] open Full_admin_tags_json;; @@ -35,3 +38,4 @@ let full_field_tag_opt_to_json = function | None -> `Null | Some x -> full_field_tag_to_json x ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-pp/full_messages_json.iml b/src-protocol-pp/full_messages_json.iml index d7b87dba..3900b391 100644 --- a/src-protocol-pp/full_messages_json.iml +++ b/src-protocol-pp/full_messages_json.iml @@ -7,14 +7,21 @@ full_messages_json.ml *) - +[@@@program] open Yojson;; +[@@@import "../src-core-pp/base_types_json.iml"] open Base_types_json;; +[@@@import "full_message_tags_json.iml"] open Full_message_tags_json;; +[@@@import "full_admin_enums_json.iml"] open Full_admin_enums_json;; +[@@@import "full_admin_messages_json.iml"] open Full_admin_messages_json;; +[@@@import "../src-protocol-exts-pp/full_app_messages_json.iml"] open Full_app_messages_json;; +[@@@import "../src-protocol/full_messages.iml"] open Full_messages;; +[@@@import "../src-core-time-defaults-pp/timeDefaults_json.iml"] open TimeDefaults_json;; @@ -113,3 +120,4 @@ let full_top_level_msg_opt_to_json = function | None -> `Null | Some x -> full_top_level_msg_to_json x ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-pp/parse_admin_enums.iml b/src-protocol-pp/parse_admin_enums.iml index 92b03d96..aa81b2ba 100644 --- a/src-protocol-pp/parse_admin_enums.iml +++ b/src-protocol-pp/parse_admin_enums.iml @@ -7,7 +7,8 @@ parse_admin_enums.ml *) - +[@@@program] +[@@@import "../src-protocol/full_admin_enums.iml"] open Full_admin_enums;; @@ -76,4 +77,4 @@ let parse_MsgDirection ( str ) = | _ -> (None) ) ;; - +[@@@logic] diff --git a/src-protocol-pp/parse_admin_messages.iml b/src-protocol-pp/parse_admin_messages.iml index b48fbae7..9fec96cf 100644 --- a/src-protocol-pp/parse_admin_messages.iml +++ b/src-protocol-pp/parse_admin_messages.iml @@ -7,14 +7,22 @@ parse_admin_messages.ml *) - +[@@@program] +[@@@import "../src-protocol/full_admin_tags.iml"] open Full_admin_tags;; +[@@@import "../src-protocol/full_admin_messages.iml"] open Full_admin_messages;; +[@@@import "../src-core-pp/parser_utils.iml"] open Parser_utils.Parser;; +[@@@import "../src-core-pp/parse_base_types.iml"] open Parse_base_types;; +[@@@import "../src-core-pp/parse_datetime.iml"] open Parse_datetime;; +[@@@import "parse_admin_enums.iml"] open Parse_admin_enums;; +[@@@import "parse_full_tags.iml"] open Parse_full_tags;; +[@@@import "../src-core/datetime.iml"] open Datetime;; @@ -167,3 +175,4 @@ let parse_admin_msg_data msg_tag msg = | Full_Msg_Logon_Tag -> parse_msg_logon_data msg >>= fun x -> ParseSuccess ( Full_Msg_Logon x ) | Full_Msg_Business_Reject_Tag -> parse_msg_business_reject_data msg >>= fun x -> ParseSuccess ( Full_Msg_Business_Reject x ) ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-pp/parse_admin_tags.iml b/src-protocol-pp/parse_admin_tags.iml index aa32b0be..a50421d4 100644 --- a/src-protocol-pp/parse_admin_tags.iml +++ b/src-protocol-pp/parse_admin_tags.iml @@ -7,7 +7,8 @@ parse_admin_tags.ml *) - +[@@@program] +[@@@import "../src-protocol/full_admin_tags.iml"] open Full_admin_tags;; @@ -78,5 +79,5 @@ let parse_admin_field_tag = function | "789" -> Some Full_Msg_NextExpectedMsgSeqNum_Tag | _ -> None ;; - +[@@@logic] diff --git a/src-protocol-pp/parse_full_messages.iml b/src-protocol-pp/parse_full_messages.iml index 1465021c..b0172bd4 100644 --- a/src-protocol-pp/parse_full_messages.iml +++ b/src-protocol-pp/parse_full_messages.iml @@ -7,13 +7,21 @@ parse_full_messages.ml *) - +[@@@program] +[@@@import "../src-protocol/full_message_tags.iml"] open Full_message_tags +[@@@import "../src-protocol/full_messages.iml"] open Full_messages +[@@@import "../src-core-pp/parser_utils.iml"] open Parser_utils.Parser +[@@@import "../src-core-pp/parse_base_types.iml"] open Parse_base_types +[@@@import "parse_full_tags.iml"] open Parse_full_tags +[@@@import "../src-core-time-defaults-pp/timeDefaults_parser.iml"] open TimeDefaults_parser +[@@@import "parse_admin_messages.iml"] +[@@@import "../src-protocol-exts-pp/parse_app_messages.iml"] let parse_msg_data msg_tag msg = @@ -209,3 +217,4 @@ let parse_top_level_msg msg = | RepeatingGroupOutOfOrder tagstr -> make_session_reject Full_admin_enums.RepeatingGroupFieldsOutOfOrder tagstr msg | EmptyValue tag -> make_session_reject Full_admin_enums.TagSecifiedWithoutAValue tag msg ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-pp/parse_full_tags.iml b/src-protocol-pp/parse_full_tags.iml index ed675a62..10b8baf5 100644 --- a/src-protocol-pp/parse_full_tags.iml +++ b/src-protocol-pp/parse_full_tags.iml @@ -7,9 +7,12 @@ parse_full_tags.ml *) - +[@@@program] +[@@@import "../src-protocol/full_message_tags.iml"] open Full_message_tags;; +[@@@import "../src-protocol-exts-pp/parse_app_tags.iml"] open Parse_app_tags;; +[@@@import "parse_admin_tags.iml"] open Parse_admin_tags;; @@ -33,3 +36,4 @@ let parse_full_field_tag str = | None -> None end ;; +[@@@logic] \ No newline at end of file diff --git a/src-protocol-pp/pp_main.iml b/src-protocol-pp/pp_main.iml index 5113d3d0..cc8a2e90 100644 --- a/src-protocol-pp/pp_main.iml +++ b/src-protocol-pp/pp_main.iml @@ -8,11 +8,8 @@ fix_pp_main.ml *) - -:program - -#use "topfind";; -#require "yojson";; +(* +[@@@program] open String;; open Yojson;; @@ -30,3 +27,4 @@ open Yojson;; :load src-pp/fix_app_msg_json.ml :load src-pp/fix_msg_json.ml :load src-pp/fix_engine_json.ml +*) \ No newline at end of file diff --git a/src-protocol/full_admin_messages.iml b/src-protocol/full_admin_messages.iml index ddd43109..68dbcfec 100644 --- a/src-protocol/full_admin_messages.iml +++ b/src-protocol/full_admin_messages.iml @@ -7,10 +7,13 @@ full_admin_messages.ml *) - +[@@@import "../src-core/datetime.iml"] open Datetime;; +[@@@import "full_admin_enums.iml"] open Full_admin_enums;; +[@@@import "full_admin_tags.iml"] open Full_admin_tags;; +[@@@import "full_message_tags.iml"] open Full_message_tags;; (** diff --git a/src-protocol/full_message_tags.iml b/src-protocol/full_message_tags.iml index 21a778b9..5fe3f7bf 100644 --- a/src-protocol/full_message_tags.iml +++ b/src-protocol/full_message_tags.iml @@ -7,8 +7,9 @@ full_admin_messages.ml *) - +[@@@import "../src-protocol-exts/full_app_tags.iml"] open Full_app_tags;; +[@@@import "full_admin_tags.iml"] open Full_admin_tags;; diff --git a/src-protocol/full_messages.iml b/src-protocol/full_messages.iml index b26027ef..8d12e09c 100644 --- a/src-protocol/full_messages.iml +++ b/src-protocol/full_messages.iml @@ -7,11 +7,15 @@ full_messages.ml *) - +[@@@import "full_message_tags.iml"] open Full_message_tags;; +[@@@import "full_admin_enums.iml"] open Full_admin_enums;; +[@@@import "full_admin_messages.iml"] open Full_admin_messages;; +[@@@import "../src-protocol-exts/full_app_messages.iml"] open Full_app_messages;; +[@@@import "../src-core-time-defaults/timeDefaults.iml"] open TimeDefaults;; diff --git a/src-simulation/client.iml b/src-simulation/client.iml index 270d2e4b..0bf2a10a 100644 --- a/src-simulation/client.iml +++ b/src-simulation/client.iml @@ -7,10 +7,15 @@ client.ml *) - +[@@@program] module J = Yojson.Basic +[@@@require "decoders-yojson"] module D = Decoders_yojson.Basic.Decode - +[@@@require "lwt"] +[@@@import "../src-core-time-defaults-pp/timeDefaults_current_time.iml"] +[@@@import "../src-model/src-types-pp/model_messages_json.iml"] +[@@@import "fix_connection.iml"] +[@@@import "../src-core-time-defaults-pp/timeDefaults_json.iml"] let (>>=) = Lwt.(>>=);; let ctime = TimeDefaults_current_time.get_current_utctimestamp;; @@ -151,3 +156,4 @@ let () = let config = Term.(const mkconfig $ compid $ hostid $ targetid $ reset ) in Term.exit @@ Term.eval (Term. (const run_client $ fixhost $ fixport $ config $ zmqpub $ zmqrep ), info) ;; +[@@@logic] \ No newline at end of file diff --git a/src-simulation/fix_global_state.iml b/src-simulation/fix_global_state.iml index d0493342..69d3c3c9 100644 --- a/src-simulation/fix_global_state.iml +++ b/src-simulation/fix_global_state.iml @@ -1,3 +1,15 @@ +[@@@program] +[@@@require "lwt"] +[@@@import "../src-protocol/full_messages.iml"] +[@@@import "../src/fix_engine_state.iml"] +[@@@import "../src-model/src-types/actions.iml"] +[@@@import "../src-model/src-types/model_messages.iml"] +[@@@import "../src-model/src-types/state.iml"] +[@@@import "../src-protocol-pp/full_messages_json.iml"] +[@@@import "../src/fix_engine.iml"] +[@@@import "../src-model/src-conversions/type_converter.iml"] +[@@@import "../src-model/src/venue.iml"] +[@@@import "../src-core-utils/message_utils.iml"] let (>>=) = Lwt.(>>=) @@ -152,3 +164,4 @@ let start ?pub:(pub_callback=None) init_engine init_model fix_callback = } in ( state.incoming , main_loop state ) ;; +[@@@logic] \ No newline at end of file diff --git a/src/fix_engine.iml b/src/fix_engine.iml index 14123ace..032ff48b 100644 --- a/src/fix_engine.iml +++ b/src/fix_engine.iml @@ -7,11 +7,15 @@ fix_engine.ml *) - +[@@@import "../src-protocol/full_messages.iml"] open Full_messages;; +[@@@import "fix_engine_state.iml"] open Fix_engine_state;; +[@@@import "fix_engine_utils.iml"] open Fix_engine_utils;; +[@@@import "fix_engine_transitions.iml"] open Fix_engine_transitions;; +[@@@import "../src-core-time-defaults/timeDefaults.iml"] open TimeDefaults;; (** Process incoming internal transition message. *) diff --git a/src/fix_engine_state.iml b/src/fix_engine_state.iml index 8fe65e9f..7a8e269a 100644 --- a/src/fix_engine_state.iml +++ b/src/fix_engine_state.iml @@ -8,11 +8,15 @@ *) - +[@@@import "../src-core/datetime.iml"] open Datetime;; +[@@@import "../src-protocol/full_admin_enums.iml"] open Full_admin_enums;; +[@@@import "../src-protocol-exts/full_app_messages.iml"] open Full_app_messages;; +[@@@import "../src-protocol/full_messages.iml"] open Full_messages;; +[@@@import "../src-core-time-defaults/timedefaults.iml"] open TimeDefaults;; (** Define set of actions + data for manual intervention by the user. *) diff --git a/src/fix_engine_transitions.iml b/src/fix_engine_transitions.iml index 79a3c21e..4ca8071c 100644 --- a/src/fix_engine_transitions.iml +++ b/src/fix_engine_transitions.iml @@ -7,14 +7,21 @@ fix_engine_transitions.ml *) - +[@@@import "../src-core/datetime.iml"] open Datetime;; +[@@@import "../src-protocol/full_admin_enums.iml"] open Full_admin_enums;; +[@@@import "../src-protocol/full_admin_messages.iml"] open Full_admin_messages;; +[@@@import "../src-protocol/full_message_tags.iml"] open Full_message_tags;; +[@@@import "../src-protocol/full_admin_tags.iml"] open Full_admin_tags;; +[@@@import "../src-protocol/full_messages.iml"] open Full_messages;; +[@@@import "fix_engine_state.iml"] open Fix_engine_state;; +[@@@import "fix_engine_utils.iml"] open Fix_engine_utils;; (** In many abnormal cases we need to send out the Logout messages and diff --git a/src/fix_engine_utils.iml b/src/fix_engine_utils.iml index 2705cdd5..01f62b09 100644 --- a/src/fix_engine_utils.iml +++ b/src/fix_engine_utils.iml @@ -9,14 +9,23 @@ *) (* @meta[imandra_ignore] on @end *) +[@@@import "../src-core/datetime.iml"] open Datetime;; +[@@@import "../src-protocol/full_admin_enums.iml"] open Full_admin_enums;; +[@@@import "../src-protocol/full_admin_messages.iml"] open Full_admin_messages;; +[@@@import "../src-protocol/full_messages.iml"] open Full_messages;; +[@@@import "../src-protocol/full_message_tags.iml"] open Full_message_tags;; +[@@@import "../src-protocol/full_admin_tags.iml"] open Full_admin_tags;; +[@@@import "fix_engine_state.iml"] open Fix_engine_state;; +[@@@import "../src-core-time-defaults/timeDefaults.iml"] open TimeDefaults;; +[@@@import "../src-core-utils/fix_version.iml"] open Fix_version;; (* @meta[imandra_ignore] off @end *) From beb7ca1ab7489dc886e5d980e23bc151c080315c Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Sun, 29 Sep 2019 21:36:43 +0100 Subject: [PATCH 02/19] wip - making vgs work with new core utils --- Makefile | 6 +++--- src-core-utils-vg/dune | 21 +++++++++++++++++++++ src-core-utils-vg/fix_version.iml | 10 ++++++++++ src-core-utils-vg/message_utils.iml | 9 +++++++++ src-protocol-exts-pp-vg/dune | 6 +++--- src-protocol-exts-vg/dune | 4 ++-- 6 files changed, 48 insertions(+), 8 deletions(-) create mode 100644 src-core-utils-vg/dune create mode 100644 src-core-utils-vg/fix_version.iml create mode 100644 src-core-utils-vg/message_utils.iml diff --git a/Makefile b/Makefile index e2882dc1..3a102b64 100644 --- a/Makefile +++ b/Makefile @@ -1,17 +1,17 @@ # Makefile # build: - @echo "(ignored_subdirs (src-protocol-exts-vg src-protocol-exts-pp-vg))" > dune + @echo "(ignored_subdirs (src-protocol-exts-vg src-protocol-exts-pp-vg src-core-utils-vg))" > dune dune build @install rm dune build_vgs: - @echo "(ignored_subdirs (src-protocol-exts src-protocol-exts-pp src-model src-simulation))" > dune + @echo "(ignored_subdirs (src-protocol-exts src-protocol-exts-pp src-model src-simulation src-core-utils))" > dune dune build @install rm dune build_tests: - @echo "(ignored_subdirs (src-protocol-exts-vg src-protocol-exts-pp-vg))" > dune + @echo "(ignored_subdirs (src-protocol-exts-vg src-protocol-exts-pp-vg src-core-utils-vg))" > dune dune build src-tests/test_runner.bc rm dune diff --git a/src-core-utils-vg/dune b/src-core-utils-vg/dune new file mode 100644 index 00000000..bb1cf671 --- /dev/null +++ b/src-core-utils-vg/dune @@ -0,0 +1,21 @@ +(rule + (targets fix_version.ml) + (deps fix_version.iml) + (action + (with-stdout-to fix_version.ml + (run imandra-extract fix_version.iml)))) + +(rule + (targets message_utils.ml) + (deps message_utils.iml) + (action + (with-stdout-to message_utils.ml + (run imandra-extract message_utils.iml)))) + +(library + (name core_utils) + (public_name fix-engine.core_utils) + (wrapped false) + (flags (:standard -open Imandra_prelude -warn-error -A+8+39)) + (libraries imandra-base.prelude) +) diff --git a/src-core-utils-vg/fix_version.iml b/src-core-utils-vg/fix_version.iml new file mode 100644 index 00000000..439dd189 --- /dev/null +++ b/src-core-utils-vg/fix_version.iml @@ -0,0 +1,10 @@ +(* Aesthetic Integration copyright 2018 *) + +type session_details = { + constant_begin_string : string +} +;; + +let default_session_details = { + constant_begin_string = "FIX.4.4" +};; diff --git a/src-core-utils-vg/message_utils.iml b/src-core-utils-vg/message_utils.iml new file mode 100644 index 00000000..399fadb9 --- /dev/null +++ b/src-core-utils-vg/message_utils.iml @@ -0,0 +1,9 @@ +(* Aesthetic Integration copyright 2018 *) + +let get_resend_message (msg) = + msg +;; + +let get_normal_message (_msg) = + None +;; diff --git a/src-protocol-exts-pp-vg/dune b/src-protocol-exts-pp-vg/dune index 7f0caccf..c1bd6a75 100644 --- a/src-protocol-exts-pp-vg/dune +++ b/src-protocol-exts-pp-vg/dune @@ -70,9 +70,9 @@ (library - (name protocol_exts_pp_vg) - (public_name fix-engine.protocol_exts_pp_vg) + (name protocol_exts_pp) + (public_name fix-engine.protocol_exts_pp) (wrapped false) (flags (:standard -open Imandra_prelude -warn-error -A+8+39)) - (libraries imandra-base.prelude core_time_defaults yojson core_pp core_time_defaults_pp protocol_exts_vg) + (libraries imandra-base.prelude core_time_defaults yojson core_pp core_time_defaults_pp protocol_exts) ) diff --git a/src-protocol-exts-vg/dune b/src-protocol-exts-vg/dune index 9dee2967..b772209a 100644 --- a/src-protocol-exts-vg/dune +++ b/src-protocol-exts-vg/dune @@ -27,8 +27,8 @@ (run imandra-extract full_app_tags.iml)))) (library - (name protocol_exts_vg) - (public_name fix-engine.protocol_exts_vg) + (name protocol_exts) + (public_name fix-engine.protocol_exts) (wrapped false) (flags (:standard -open Imandra_prelude -warn-error -A+8+39)) (libraries imandra-base.prelude core core_time_defaults) From d4a01b80cd501d9ada081a366246ec48e28be9da Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Sun, 29 Sep 2019 23:01:23 +0100 Subject: [PATCH 03/19] wip: tests and vgs to finish - also strange decoders error from cache --- src-protocol-exts-pp-vg/full_app_messages_json.iml | 2 +- src-protocol-pp/encode_admin_messages.iml | 2 +- src-simulation/fix_connection.iml | 13 +++++++++++++ src-simulation/fix_global_state.iml | 3 ++- src-simulation/message_stream.iml | 5 ++++- src-simulation/server.iml | 12 +++++++++++- src/fix_engine_transitions.iml | 9 ++++++--- 7 files changed, 38 insertions(+), 8 deletions(-) diff --git a/src-protocol-exts-pp-vg/full_app_messages_json.iml b/src-protocol-exts-pp-vg/full_app_messages_json.iml index 58fd96dd..11c6e9e0 100644 --- a/src-protocol-exts-pp-vg/full_app_messages_json.iml +++ b/src-protocol-exts-pp-vg/full_app_messages_json.iml @@ -9,7 +9,7 @@ *) [@@@program] open Yojson;; -[@@@import "../src-protocol-exts/full_app_messages.iml"] +[@@@import "../src-protocol-exts-vg/full_app_messages.iml"] open Full_app_messages;; [@@@import "../src-core-pp/base_types_json.iml"] open Base_types_json;; diff --git a/src-protocol-pp/encode_admin_messages.iml b/src-protocol-pp/encode_admin_messages.iml index aff347d7..69c4a736 100644 --- a/src-protocol-pp/encode_admin_messages.iml +++ b/src-protocol-pp/encode_admin_messages.iml @@ -18,7 +18,7 @@ open Encode_datetime;; open Encode_admin_enums;; [@@@import "encode_full_tags.iml"] open Encode_full_tags;; -[@@@import "src-core/datetime.iml"] +[@@@import "../src-core/datetime.iml"] open Datetime;; let req f x = Some (f x);; diff --git a/src-simulation/fix_connection.iml b/src-simulation/fix_connection.iml index 90a95f78..58ef9717 100644 --- a/src-simulation/fix_connection.iml +++ b/src-simulation/fix_connection.iml @@ -1,3 +1,15 @@ +[@@@program] +[@@@require "lwt"] +[@@@require "lwt.unix"] +[@@@import "../src-core-time-defaults-pp/timeDefaults_current_time.iml"] +[@@@import "../src-model/src-types/model_messages.iml"] +[@@@import "fix_global_state.iml"] +[@@@import "../src/fix_engine_state.iml"] +[@@@import "message_stream.iml"] +[@@@import "../src-protocol-pp/parse_full_messages.iml"] +[@@@import "../src-protocol-pp/encode_full_messages.iml"] + + type config = { comp_id : string; host_id : string option; @@ -161,3 +173,4 @@ let create config (inch, outch) = initmsg = initmsg } ;; +[@@@logic] \ No newline at end of file diff --git a/src-simulation/fix_global_state.iml b/src-simulation/fix_global_state.iml index 69d3c3c9..96d6ade4 100644 --- a/src-simulation/fix_global_state.iml +++ b/src-simulation/fix_global_state.iml @@ -1,5 +1,6 @@ [@@@program] [@@@require "lwt"] +[@@@require "lwt.unix"] [@@@import "../src-protocol/full_messages.iml"] [@@@import "../src/fix_engine_state.iml"] [@@@import "../src-model/src-types/actions.iml"] @@ -128,7 +129,7 @@ let rec main_loop state = let open Fix_engine_state in Lwt_mvar.take state.incoming >>= fun incoming -> (* Lwt_io.printf "Main_loop received incoming : %s\n" (pp_incoming incoming) >>= fun () -> *) - Lwt_io.flush_all () >>= fun () -> + Lwt_io.flush_all () >>= fun () -> match incoming with | Terminate -> Lwt.return_unit | Internal_Message msg -> diff --git a/src-simulation/message_stream.iml b/src-simulation/message_stream.iml index 9fc22423..1462bacd 100644 --- a/src-simulation/message_stream.iml +++ b/src-simulation/message_stream.iml @@ -1,4 +1,7 @@ +[@@@program] +[@@@require "lwt"] +[@@@require "lwt.unix"] let (>>=) = Lwt.(>>=);; let split_into_key_value (spliton : char) ( stream : char Lwt_stream.t ) : (string * string) Lwt_stream.t = @@ -47,4 +50,4 @@ let from_channel ?(verbose=false) ?(spliton='\001') inch = |> split_into_key_value spliton |> split_into_messages verbose ;; - +[@@@logic] diff --git a/src-simulation/server.iml b/src-simulation/server.iml index 0f00a542..3473fe81 100644 --- a/src-simulation/server.iml +++ b/src-simulation/server.iml @@ -7,7 +7,16 @@ server.ml *) - +[@@@program] +[@@@require "lwt"] +[@@@require "lwt.unix"] +[@@@import "../src-core-time-defaults-pp/timeDefaults_current_time.iml"] +[@@@import "../src/fix_engine_state.iml"] +[@@@import "../src-protocol/full_messages.iml"] +[@@@import "../src-protocol-pp/encode_full_messages.iml"] +[@@@import "../src-protocol-pp/parse_full_messages.iml"] +[@@@import "fix_global_state.iml"] +[@@@import "message_stream.iml"] let (>>=) = Lwt.(>>=);; let engine_state = @@ -78,3 +87,4 @@ let server_thread = Lwt_main.run server_thread ;; +[@@@logic] \ No newline at end of file diff --git a/src/fix_engine_transitions.iml b/src/fix_engine_transitions.iml index 4ca8071c..297f2303 100644 --- a/src/fix_engine_transitions.iml +++ b/src/fix_engine_transitions.iml @@ -367,16 +367,19 @@ let run_cache_replay ( engine : fix_engine_state ) = { engine with fe_cache = xs } ;; +let no_seq_gap_measure l = + Ordinal.of_int (List.length l);; (** Check to make sure there're no sequence gaps *) -let rec no_seq_gaps ( msg_list, last_seq_num : full_valid_fix_msg list * int) = +let rec no_seq_gaps (msg_list:full_valid_fix_msg list) (last_seq_num : int) = match msg_list with | [] -> true | x::xs -> if x.full_msg_header.h_msg_seq_num <> ( last_seq_num + 1 ) then false else - no_seq_gaps ( xs, x.full_msg_header.h_msg_seq_num ) + no_seq_gaps xs x.full_msg_header.h_msg_seq_num + [@@measure no_seq_gap_measure msg_list] ;; (** @@ -392,7 +395,7 @@ let is_cache_complete ( cache, last_seq_processed : full_valid_fix_msg list * in | x::xs -> begin let correct_seq_num = x.full_msg_header.h_msg_seq_num = last_seq_processed in - let no_gaps = no_seq_gaps ( xs, x.full_msg_header.h_msg_seq_num ) in + let no_gaps = no_seq_gaps xs x.full_msg_header.h_msg_seq_num in correct_seq_num && no_gaps end ;; From 907b168416a173c875b9bfd08b387a144c19dd8e Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Mon, 30 Sep 2019 22:36:51 +0100 Subject: [PATCH 04/19] updating vgs and tests --- src-tests/config_parser.iml | 4 +- src-tests/test_cache.iml | 9 ++++- src-tests/test_runner.iml | 21 +++++++++- vgs/base_vgs.iml | 7 +++- vgs/datetime.iml | 50 ------------------------ vgs/decomp.iml | 54 ------------------------- vgs/dune | 78 +++++++++++++++++++++++++++++++++++++ vgs/example_min_vg.iml | 28 +++++++------ vgs/float_vgs.iml | 1 + vgs/heartbeat_vgs.iml | 10 ++++- vgs/logon_vgs.iml | 7 +++- vgs/logout_vgs.iml | 19 ++++----- vgs/reject_vgs.iml | 13 +++++-- vgs/seq_num_vgs.iml | 18 +++++---- vgs/seqreset_reset_vgs.iml | 19 ++++----- vgs/top.iml | 32 --------------- 16 files changed, 184 insertions(+), 186 deletions(-) delete mode 100644 vgs/datetime.iml delete mode 100644 vgs/decomp.iml create mode 100644 vgs/dune delete mode 100644 vgs/top.iml diff --git a/src-tests/config_parser.iml b/src-tests/config_parser.iml index 8763ad6a..fda2a02f 100644 --- a/src-tests/config_parser.iml +++ b/src-tests/config_parser.iml @@ -1,3 +1,5 @@ +[@@@program] +[@@@import "../src-core-pp/parser_utils.iml"] type action = | Connect | Disconnect @@ -51,5 +53,5 @@ let parse_file filename = |> List.filter (fun x -> x <> None) |> List.map (function Some x -> x | None -> failwith "Internal error in parse_file.") ;; - +[@@@logic] diff --git a/src-tests/test_cache.iml b/src-tests/test_cache.iml index 44851249..0d1a3ec1 100644 --- a/src-tests/test_cache.iml +++ b/src-tests/test_cache.iml @@ -7,11 +7,18 @@ test_cache.ml *) +[@@@program] +[@@@import "../src-protocol/full_admin_messages.iml"] open Full_admin_messages +[@@@import "../src-protocol/full_messages.iml"] open Full_messages +[@@@import "../src/fix_engine_transitions.iml"] open Fix_engine_transitions +[@@@import "../src/fix_engine_utils.iml"] open Fix_engine_utils +[@@@import "../src-core-time-defaults/timeDefaults.iml"] open TimeDefaults +[@@@import "../src-protocol-pp/full_messages_json.iml"] @@ -74,4 +81,4 @@ check_cache([ make_fix_msg (4); make_fix_msg (5); ], 0);; - +[@@@logic] diff --git a/src-tests/test_runner.iml b/src-tests/test_runner.iml index e3d93588..2b30550e 100644 --- a/src-tests/test_runner.iml +++ b/src-tests/test_runner.iml @@ -1,7 +1,24 @@ +[@@@program] +[@@@import "config_parser.iml"] open Config_parser +[@@@import "../src-core-time-defaults-pp/timeDefaults_current_time.iml"] open TimeDefaults_current_time +[@@@import "../src-core-time-defaults/timeDefaults.iml"] open TimeDefaults +[@@@import "../src-core-time-defaults-pp/timeDefaults_parser.iml"] open TimeDefaults_parser +[@@@require "lwt"] +[@@@require "lwt.unix"] +[@@@import "../src-core-pp/encode_base_types.iml"] +[@@@import "../src-protocol-pp/encode_full_messages.iml"] +[@@@import "../src-core-printer/core_printer.iml"] +[@@@import "../src-protocol/full_message_tags.iml"] +[@@@import "../src-core-pp/parser_utils.iml"] +[@@@import "../src-protocol-pp/parse_full_tags.iml"] +[@@@import "../src-protocol-pp/full_admin_tags_json.iml"] +[@@@import "../src-protocol-exts-pp/full_app_tags_json.iml"] +[@@@import "../src-simulation/message_stream.iml"] +[@@@require "cmdliner"] let (>>=) = Lwt.(>>=);; @@ -175,7 +192,6 @@ let def_reader filename = end |> Lwt_main.run ;; - let () = let open Cmdliner in let doc = "Tests a FIX server following a *.def script file." in @@ -184,4 +200,5 @@ let () = in let def_fname = Arg.(value & pos 0i string "" & info []) in Term.exit @@ Term.eval (Term. (const def_reader $ def_fname ), info) -;; +;; +[@@@logic] \ No newline at end of file diff --git a/vgs/base_vgs.iml b/vgs/base_vgs.iml index 4e3d9cbc..02306390 100644 --- a/vgs/base_vgs.iml +++ b/vgs/base_vgs.iml @@ -8,12 +8,17 @@ fix_base_vgs.ml *) - +[@@@import "../src-core/datetime.iml"] open Datetime;; +[@@@import "../src/fix_engine.iml"] open Fix_engine;; +[@@@import "../src/fix_engine_state.iml"] open Fix_engine_state;; +[@@@import "../src/fix_engine_utils.iml"] open Fix_engine_utils;; +[@@@import "../src-protocol/full_admin_messages.iml"] open Full_admin_messages;; +[@@@import "../src-protocol/full_messages.iml"] open Full_messages;; diff --git a/vgs/datetime.iml b/vgs/datetime.iml deleted file mode 100644 index 5cc47f74..00000000 --- a/vgs/datetime.iml +++ /dev/null @@ -1,50 +0,0 @@ -(* Basic Datetime VGs *) - -open Datetime;; - -theorem utc_gt_transitive (x,y,z) = - utctimestamp_GreaterThan x y - && utctimestamp_GreaterThan y z - ==> - utctimestamp_GreaterThan x z -;; - -theorem utc_gt_irreflexive (x) = - not(utctimestamp_GreaterThan x x ) -;; - -theorem utc_gt_total (x,y) = - x = y - || utctimestamp_GreaterThan x y - || utctimestamp_GreaterThan y x -;; - -theorem normalise_id (x) = - is_valid_utctimestamp x - ==> - normalise_timestamp x = x -;; - -theorem utctimeonly_GT_EQ_elim (x,y) = - utctimeonly_GreaterThan x y ==> utctimeonly_Equal x y = false -;; - - -theorem utctimeonly_GT_arith_elim_hour (x,y) = - x.utc_timeonly_hour > y.utc_timeonly_hour ==> utctimeonly_GreaterThan x y -;; - -theorem utctimeonly_GT_arith_elim_min (x,y) = - x.utc_timeonly_hour = y.utc_timeonly_hour - && x.utc_timeonly_minute > y.utc_timeonly_minute - ==> utctimeonly_GreaterThan x y -;; - -theorem utctimeonly_GT_arith_elim_sec (x,y) = - x.utc_timeonly_hour = y.utc_timeonly_hour - && x.utc_timeonly_minute = y.utc_timeonly_minute - && x.utc_timeonly_second > y.utc_timeonly_second - ==> utctimeonly_GreaterThan x y -;; - - diff --git a/vgs/decomp.iml b/vgs/decomp.iml deleted file mode 100644 index 3532d6f2..00000000 --- a/vgs/decomp.iml +++ /dev/null @@ -1,54 +0,0 @@ -(* Toplevel fix-engine decomp/testgen driver *) - -:restore fix_engine -:l vgs/top.ml -:checkpoint fix_engine - -:!disable - make_utctimestamp - is_valid_utctimestamp - utctimestamp_GreaterThan - utctimestamp_Equal - utctimestamp_GreaterThanEqual - utctimestamp_LessThan - utctimestamp_LessThanEqual - make_localmktdate - is_valid_localmktdate - make_monthyear - is_valid_monthyear - make_utctimeonly - is_valid_utctimeonly - utctimeonly_GreaterThan - utctimeonly_Equal - utctimeonly_LessThan - utctimeonly_LessThanEqual - utctimeonly_GreaterThanEqual - make_utcdateonly - is_valid_utcdateonly - make_duration - is_valid_duration - is_leapyear - how_many_days - calculate_carry - normalise_timestamp - float_Add - float_Sub - float_Neg - float_Div - float_Mult - float_GreaterThan - float_LessThan - float_GreaterThanEqual - float_Equal - float_LessThanEqual - utctimestamp_duration_Add -;; - -:adts restricted -:set_print testgen_invariant -:set_print region_indent -:max_region_time 1000 -:max_decomp_time 1000000 - -:testgen one_step - diff --git a/vgs/dune b/vgs/dune new file mode 100644 index 00000000..94a29989 --- /dev/null +++ b/vgs/dune @@ -0,0 +1,78 @@ +(rule + (targets base_vgs.ml) + (deps base_vgs.iml) + (action + (with-stdout-to base_vgs.ml + (run imandra-extract base_vgs.iml)))) + +(rule + (targets datetime_vgs.ml) + (deps datetime_vgs.iml) + (action + (with-stdout-to datetime_vgs.ml + (run imandra-extract datetime_vgs.iml)))) + +(rule + (targets float_vgs.ml) + (deps float_vgs.iml) + (action + (with-stdout-to float_vgs.ml + (run imandra-extract float_vgs.iml)))) + +(rule + (targets heartbeat_vgs.ml) + (deps heartbeat_vgs.iml) + (action + (with-stdout-to heartbeat_vgs.ml + (run imandra-extract heartbeat_vgs.iml)))) + +(rule + (targets logon_vgs.ml) + (deps logon_vgs.iml) + (action + (with-stdout-to logon_vgs.ml + (run imandra-extract logon_vgs.iml)))) + +(rule + (targets logout_vgs.ml) + (deps logout_vgs.iml) + (action + (with-stdout-to logout_vgs.ml + (run imandra-extract logout_vgs.iml)))) + +(rule + (targets reject_vgs.ml) + (deps reject_vgs.iml) + (action + (with-stdout-to reject_vgs.ml + (run imandra-extract reject_vgs.iml)))) + +(rule + (targets seq_num_vgs.ml) + (deps seq_num_vgs.iml) + (action + (with-stdout-to seq_num_vgs.ml + (run imandra-extract seq_num_vgs.iml)))) + +(rule + (targets seqreset_reset_vgs.ml) + (deps seqreset_reset_vgs.iml) + (action + (with-stdout-to seqreset_reset_vgs.ml + (run imandra-extract seqreset_reset_vgs.iml)))) + +(rule + (targets example_min_vg.ml) + (deps example_min_vg.iml) + (action + (with-stdout-to example_min_vg.ml + (run imandra-extract example_min_vg.iml)))) + + +(library + (name vgs) + (public_name fix-engine.vgs) + (wrapped false) + (flags (:standard -open Imandra_prelude -warn-error -A+8+39)) + (libraries imandra-base.prelude core fix_engine) +) \ No newline at end of file diff --git a/vgs/example_min_vg.iml b/vgs/example_min_vg.iml index 1326ea7c..010d0c07 100644 --- a/vgs/example_min_vg.iml +++ b/vgs/example_min_vg.iml @@ -2,7 +2,10 @@ (* First, we try to verify a false VG and extract a counterexample. *) -verify foo ( state : fix_engine_state ) = +open Fix_engine +open Fix_engine_state +(* +verify ( fun (state : fix_engine_state) -> let incoming_biz_rejected = match state.incoming_fix_msg with | Some x -> not (x.reject_flags.garbled) @@ -31,9 +34,9 @@ verify foo ( state : fix_engine_state ) = && state.fe_curr_mode = ActiveSession *) && no_incoming_msgs) ==> - result_biz_reject + result_biz_reject) ;; - +*) (* Note that we now have a counterexample bound to CX.state. Let's `minimize' some aspect of this counterexample. In doing so, @@ -47,15 +50,16 @@ verify foo ( state : fix_engine_state ) = was introduced when we ran the verify statement above. For example, the following evaluates to false: *) - -foo CX.state;; +(* +foo CX.state;; *) (* We can use foo to minimize our counterexample. *) +(* :shadow off - +*) (* First, we define a little `minimizer.' *) - +(* let minimize_state s i = match i with 0 -> { s with fe_curr_time = 1 } @@ -67,10 +71,10 @@ let minimize_state s i = | 6 -> { s with fe_heartbeat_interval = 1 } | _ -> s ;; - +*) (* Now, we execute it, only keeping `minimizations' that maintain our state's counterexample status. *) - +(* let minimize_state_vg vg_test s = let s = ref s in for i = 0 to 6 do @@ -80,11 +84,11 @@ let minimize_state_vg vg_test s = then s := s' done; !s -;; - +;; *) +(* :shadow on -minimize_state_vg foo CX.state;; +minimize_state_vg foo CX.state;; *) (* Result: diff --git a/vgs/float_vgs.iml b/vgs/float_vgs.iml index 8ea2aa70..a6d8f43a 100644 --- a/vgs/float_vgs.iml +++ b/vgs/float_vgs.iml @@ -1,3 +1,4 @@ +[@@@import "../src-core/numeric.iml"] open Numeric;; theorem float_LT_GT_elim (x,y) = diff --git a/vgs/heartbeat_vgs.iml b/vgs/heartbeat_vgs.iml index 158a42eb..087a89bc 100644 --- a/vgs/heartbeat_vgs.iml +++ b/vgs/heartbeat_vgs.iml @@ -8,14 +8,20 @@ fix_heartbeat_vgs.ml *) - +[@@@import "../src-core/datetime.iml"] open Datetime;; +[@@@import "../src/fix_engine.iml"] open Fix_engine;; +[@@@import "../src/fix_engine_state.iml"] open Fix_engine_state;; +[@@@import "../src/fix_engine_utils.iml"] open Fix_engine_utils;; +[@@@import "../src-protocol/full_admin_messages.iml"] open Full_admin_messages;; +[@@@import "../src-protocol/full_messages.iml"] open Full_messages;; - +[@@@import "../src-code-time-defaults/timeDefaults.iml"] +open TimeDefaults;; (*** *************************************************************************************** *) (** diff --git a/vgs/logon_vgs.iml b/vgs/logon_vgs.iml index 3f875d04..8007fec1 100644 --- a/vgs/logon_vgs.iml +++ b/vgs/logon_vgs.iml @@ -8,12 +8,17 @@ fix_logon_vgs.ml *) - +[@@@import "../src-core/datetime.iml"] open Datetime;; +[@@@import "../src/fix_engine.iml"] open Fix_engine;; +[@@@import "../src/fix_engine_state.iml"] open Fix_engine_state;; +[@@@import "../src-protocol/full_admin_enums.iml"] open Full_admin_enums;; +[@@@import "../src-protocol/full_admin_messages.iml"] open Full_admin_messages;; +[@@@import "../src-protocol/full_messages.iml"] open Full_messages;; (** **************************************************************************************** *) diff --git a/vgs/logout_vgs.iml b/vgs/logout_vgs.iml index 05c2df67..a09c3938 100644 --- a/vgs/logout_vgs.iml +++ b/vgs/logout_vgs.iml @@ -57,23 +57,24 @@ *) (** **************************************************************************************** *) - +[@@@import "../src/fix_engine_state.iml"] +open Fix_engine_state (** VG.3.1*) -verify transitions_to_logoff_correctly ( engine : fix_engine ) = - true +verify ( fun ( engine : fix_engine_state ) -> + true) ;; (** VG.3.2 *) -verify cannot_send_messages_when_logoff ( engine : fix_engine ) = - true +verify (fun (engine : fix_engine_state ) -> + true) ;; (** VG.3.3 *) -verify gap ( engine : fix_engine ) = - true +verify (fun (engine : fix_engine_state ) -> + true) ;; (** VG.3.4 *) -verify after_gap_refill_logoff ( engine : fix_engine ) = - true +verify ( fun (engine : fix_engine_state ) -> + true) ;; \ No newline at end of file diff --git a/vgs/reject_vgs.iml b/vgs/reject_vgs.iml index b2690654..649de5c0 100644 --- a/vgs/reject_vgs.iml +++ b/vgs/reject_vgs.iml @@ -9,11 +9,16 @@ *) -open Imandra_pervasives;; +(* open Imandra_pervasives;; *) +[@@@import "../src-core/datetime.iml"] open Datetime;; +[@@@import "../src/fix_engine.iml"] open Fix_engine;; +[@@@import "../src/fix_engine_state.iml"] +open Fix_engine_state +[@@@import "../src-protocol/full_admin_messages.iml"] open Full_admin_messages;; -open Full_session_core;; +[@@@import "../src-protocol/full_messages.iml"] open Full_messages;; (** **************************************************************************************** *) @@ -47,7 +52,7 @@ let outbound_is_reject_or_app ( m : full_top_level_msg option ) = | _ -> false ;; -verify reject_only_admin_msg_retransmitted ( engine : fix_engine_state ) = +verify (fun (engine : fix_engine_state ) -> let engine' = one_step ( engine ) in ( engine.fe_curr_mode = Retransmit && @@ -58,5 +63,5 @@ verify reject_only_admin_msg_retransmitted ( engine : fix_engine_state ) = (engine'.outgoing_fix_msg = None || outbound_is_reject_or_app ( engine'.outgoing_fix_msg )) || ( engine'.outgoing_fix_msg = None && - engine'.fe_curr_mode <> Retransmit )) + engine'.fe_curr_mode <> Retransmit ))) ;; diff --git a/vgs/seq_num_vgs.iml b/vgs/seq_num_vgs.iml index 61ccfe39..ff17f33c 100644 --- a/vgs/seq_num_vgs.iml +++ b/vgs/seq_num_vgs.iml @@ -9,15 +9,17 @@ fix_seq_num_vgs.ml *) - -open Imandra_pervasives;; +[@@@import "../src-core/datetime.iml"] open Datetime;; +[@@@import "../src/fix_engine.iml"] open Fix_engine;; +[@@@import "../src/fix_engine_state.iml"] +open Fix_engine_state +[@@@import "../src-protocol/full_admin_messages.iml"] open Full_admin_messages;; -open Full_session_core;; +[@@@import "../src-protocol/full_messages.iml"] open Full_messages;; - (** **************************************************************************************** *) (** SeqNum VG.1 @@ -55,18 +57,18 @@ let no_msg ( msg : full_top_level_msg option ) = | _ -> false ;; -let no_int_msg ( msg : fix_engine_int_msg option ) = +let no_int_msg ( msg : fix_engine_int_inc_msg option ) = match msg with | None -> true | _ -> false ;; -verify logon_msg_first ( state : fix_engine_state ) = +verify ( fun (state : fix_engine_state) -> let incoming_msg_create_session = match state.incoming_int_msg with | None -> false | Some m -> match m with - | CreateSession _ -> true + | IncIntMsg_CreateSession _ -> true | _ -> false in let incoming_fix_valid_logon = is_msg_valid_logon ( state.incoming_fix_msg, ( state.incoming_seq_num + 1) ) in @@ -79,7 +81,7 @@ verify logon_msg_first ( state : fix_engine_state ) = state.incoming_seq_num = 0 && state.outgoing_seq_num = 1 && ( incoming_msg_create_session || ( incoming_fix_valid_logon && no_inc_int_msg ) ) && state.fe_cache = [] && no_msg ( state.outgoing_fix_msg ) ) - ==> next_msg_logon + ==> next_msg_logon) ;; (** **************************************************************************************** *) diff --git a/vgs/seqreset_reset_vgs.iml b/vgs/seqreset_reset_vgs.iml index b28fc72d..705cc706 100644 --- a/vgs/seqreset_reset_vgs.iml +++ b/vgs/seqreset_reset_vgs.iml @@ -8,16 +8,17 @@ fix_seqreset_reset.ml *) - -open Imandra_pervasives;; +[@@@import "../src-core/datetime.iml"] open Datetime;; -open Base_types;; +[@@@import "../src/fix_engine.iml"] open Fix_engine;; +[@@@import "../src/fix_engine_state.iml"] +open Fix_engine_state +[@@@import "../src-protocol/full_admin_messages.iml"] open Full_admin_messages;; -open Full_session_core;; +[@@@import "../src-protocol/full_messages.iml"] open Full_messages;; - (** **************************************************************************************** *) (** SeqReset_Reset VG.1 @@ -29,7 +30,7 @@ open Full_messages;; *) (** **************************************************************************************** *) - +(* let inc_msg_seqreset_reset ( m : full_top_level_msg option ) = match m with | None -> false @@ -49,13 +50,13 @@ let inc_msg_seqreset_reset ( m : full_top_level_msg option ) = ) | _ -> false ;; - +*) let state_updated ( engine, new_seq_num : fix_engine_state * int ) = engine.incoming_seq_num = new_seq_num && engine.fe_curr_mode = ActiveSession && engine.fe_cache = [] ;; - +(* let out_of_seq_seqreset_processed ( engine, new_seq_num : fix_engine_state * int ) = let engine' = one_step ( engine ) in ( inc_msg_seqreset_reset ( engine.incoming_fix_msg ) && @@ -65,7 +66,7 @@ let out_of_seq_seqreset_processed ( engine, new_seq_num : fix_engine_state * int state_updated ( engine', new_seq_num ) ) ;; - +*) (** **************************************************************************************** *) (** diff --git a/vgs/top.iml b/vgs/top.iml deleted file mode 100644 index cc2b8d71..00000000 --- a/vgs/top.iml +++ /dev/null @@ -1,32 +0,0 @@ -(** - - Aesthetic Integration Limited - Copyright (c) 2014 - 2018 - - Implementation of the FIX 4.4 protocol. - - Toplevel model load file for Imandra. -*) - -#validate false;; - -let src = - [ "src-core/datetime.ml" - ; "src-core/numeric.ml" - ; "src-protocol/full_admin_tags.ml" - ; "src-protocol-exts-vg/full_app_tags.ml" - ; "src-protocol/full_message_tags.ml" - ; "src-protocol/full_admin_enums.ml" - ; "src-protocol/full_admin_messages.ml" - ; "src-protocol-exts-vg/full_app_enums.ml" - ; "src-protocol-exts-vg/full_app_records.ml" - ; "src-protocol-exts-vg/full_app_messages.ml" - ; "src-protocol/full_messages.ml" - ; "src/fix_engine_state.ml" - ; "src/fix_engine_utils.ml" - ; "src/fix_engine_transitions.ml" - ; "src/fix_engine.ml" - ] in -Caml.List.iter System.mod_use src -;; - From 504118aa2f45140acb716ab348c8f2f2e4d93b3c Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Mon, 30 Sep 2019 22:37:32 +0100 Subject: [PATCH 05/19] updating vgs --- vgs/datetime_vgs.iml | 52 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 vgs/datetime_vgs.iml diff --git a/vgs/datetime_vgs.iml b/vgs/datetime_vgs.iml new file mode 100644 index 00000000..bebb106b --- /dev/null +++ b/vgs/datetime_vgs.iml @@ -0,0 +1,52 @@ +(* Basic Datetime VGs *) +[@@@import "../src-core/datetime.iml"] +open Datetime;; +[@@@import "../src-core-time-defaults/timeDefaults.iml"] +open TimeDefaults + +theorem utc_gt_transitive (x,y,z) = + utctimestamp_GreaterThan x y + && utctimestamp_GreaterThan y z + ==> + utctimestamp_GreaterThan x z +;; + +theorem utc_gt_irreflexive (x) = + not(utctimestamp_GreaterThan x x ) +;; + +theorem utc_gt_total (x,y) = + x = y + || utctimestamp_GreaterThan x y + || utctimestamp_GreaterThan y x +;; + +theorem normalise_id (x) = + is_valid_utctimestamp x + ==> + normalise_utctimestamp x = x +;; + +theorem utctimeonly_GT_EQ_elim (x,y) = + utctimeonly_GreaterThan x y ==> utctimeonly_Equal x y = false +;; + + +theorem utctimeonly_GT_arith_elim_hour (x,y:fix_utctimeonly*fix_utctimeonly) = + x.utc_timeonly_hour > y.utc_timeonly_hour ==> utctimeonly_GreaterThan x y +;; + +theorem utctimeonly_GT_arith_elim_min (x,y:fix_utctimeonly*fix_utctimeonly) = + x.utc_timeonly_hour = y.utc_timeonly_hour + && x.utc_timeonly_minute > y.utc_timeonly_minute + ==> utctimeonly_GreaterThan x y +;; + +theorem utctimeonly_GT_arith_elim_sec (x,y:fix_utctimeonly*fix_utctimeonly) = + x.utc_timeonly_hour = y.utc_timeonly_hour + && x.utc_timeonly_minute = y.utc_timeonly_minute + && x.utc_timeonly_second > y.utc_timeonly_second + ==> utctimeonly_GreaterThan x y +;; + + From d7767d52314fd501918dff156a65c7e9d12c25f7 Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Tue, 1 Oct 2019 12:13:10 +0100 Subject: [PATCH 06/19] wip: working module requires problem and server runs --- src-core-pp/base_types_json.iml | 1 - src-simulation/server.iml | 2 +- vgs/seq_num_vgs.iml | 4 ++-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src-core-pp/base_types_json.iml b/src-core-pp/base_types_json.iml index 12af79c2..fae2f535 100644 --- a/src-core-pp/base_types_json.iml +++ b/src-core-pp/base_types_json.iml @@ -11,7 +11,6 @@ open Yojson;; [@@@import "../src-core/numeric.iml"] open Numeric;; [@@@require "decoders-yojson"] -open Decoders_yojson.Basic.Decode;; module JU = Yojson.Basic.Util;; module D = Decoders_yojson.Basic.Decode;; open D.Infix;; diff --git a/src-simulation/server.iml b/src-simulation/server.iml index 3473fe81..0ae83ce2 100644 --- a/src-simulation/server.iml +++ b/src-simulation/server.iml @@ -85,6 +85,6 @@ let server_thread = ;; -Lwt_main.run server_thread +"Lwt_main.run server_thread" ;; [@@@logic] \ No newline at end of file diff --git a/vgs/seq_num_vgs.iml b/vgs/seq_num_vgs.iml index ff17f33c..335b44b5 100644 --- a/vgs/seq_num_vgs.iml +++ b/vgs/seq_num_vgs.iml @@ -106,14 +106,14 @@ let incoming_msg_wrong_seq_num ( state : fix_engine_state ) = | Some f -> not (f) ) ;; -verify out_of_seq_leads_to_recovery ( state : fix_engine_state ) = +verify (fun (state : fix_engine_state ) -> let state' = one_step ( state ) in ( state.fe_curr_mode = ActiveSession && state.incoming_seq_num = 1 && state.fe_cache = [] && state.incoming_int_msg = None && incoming_msg_wrong_seq_num ( state ) ) - ==> (state'.fe_curr_mode = Recovery) + ==> (state'.fe_curr_mode = Recovery)) ;; From efdfa31cc110032e646bb82c5d0c7456b0b6942f Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Tue, 1 Oct 2019 12:14:34 +0100 Subject: [PATCH 07/19] Update server.iml --- src-simulation/server.iml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src-simulation/server.iml b/src-simulation/server.iml index 0ae83ce2..e0e3de90 100644 --- a/src-simulation/server.iml +++ b/src-simulation/server.iml @@ -85,6 +85,6 @@ let server_thread = ;; -"Lwt_main.run server_thread" +Lwt_main.run server_thread ;; -[@@@logic] \ No newline at end of file +[@@@logic] From 276ece71a4b15287ae3438bb14967dfd50ee5568 Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Tue, 1 Oct 2019 22:07:45 +0100 Subject: [PATCH 08/19] server/client fixed - need to do the same for tests --- src-simulation/client.iml | 159 ------------------ src-simulation/dune | 35 ++-- src-simulation/server.ml | 19 +++ .../{server.iml => server_utils.iml} | 12 +- 4 files changed, 32 insertions(+), 193 deletions(-) delete mode 100644 src-simulation/client.iml create mode 100644 src-simulation/server.ml rename src-simulation/{server.iml => server_utils.iml} (90%) diff --git a/src-simulation/client.iml b/src-simulation/client.iml deleted file mode 100644 index 0bf2a10a..00000000 --- a/src-simulation/client.iml +++ /dev/null @@ -1,159 +0,0 @@ -(** FIX 4.4 engine client implementation. *) -(*** - - Aesthetic Integration Limited - Copyright (c) 2014 - 2018 - - client.ml - -*) -[@@@program] -module J = Yojson.Basic -[@@@require "decoders-yojson"] -module D = Decoders_yojson.Basic.Decode -[@@@require "lwt"] -[@@@import "../src-core-time-defaults-pp/timeDefaults_current_time.iml"] -[@@@import "../src-model/src-types-pp/model_messages_json.iml"] -[@@@import "fix_connection.iml"] -[@@@import "../src-core-time-defaults-pp/timeDefaults_json.iml"] -let (>>=) = Lwt.(>>=);; - -let ctime = TimeDefaults_current_time.get_current_utctimestamp;; - -let zmq_publish socket out msg = - let msg = Model_messages_json.json_of_model_msg msg in - let rtime = Fix_connection.get_last_received_utctimestamp () in - let ztime = TimeDefaults_current_time.get_current_utctimestamp () in - let stime = Fix_connection.get_last_received_sendingtime () in - let rtime = rtime |> TimeDefaults_json.utctimestamp_to_json in - let ztime = ztime |> TimeDefaults_json.utctimestamp_to_json in - let stime = stime |> TimeDefaults_json.utctimestamp_to_json in - let tpair = - if out then ( "sent_fix" , ztime ) - else ( "received_fix" , rtime ) - in - let msg = match msg with - | `Assoc pairs -> `Assoc ( - tpair :: - ( "sent_zmq" , ztime ) :: - ( "SendingTime" , stime ) :: pairs ) - | other -> other in - let msg = Yojson.to_string msg in - Lwt_zmq.Socket.send socket msg -;; - -let rec zmq_rep_loop (socket, mailbox) = - Lwt_zmq.Socket.(recv socket) >>= fun msg -> - if msg = "LOGOUT" then - Lwt_mvar.put mailbox Fix_global_state.Terminate >>= fun () -> - Lwt_zmq.Socket.(send socket "ACKED") - else if msg = "STATUS" then - Lwt_zmq.Socket.(send socket "UP") >>= fun () -> - zmq_rep_loop (socket, mailbox) - else - let json = J.from_string msg in - match D.decode_value Json_to_action.fix_action_decoder json with - | Error _ -> ( - Lwt_zmq.Socket.(send socket "REJECTED") >>= fun () -> - zmq_rep_loop (socket, mailbox) ) - | Ok action -> ( - Lwt_mvar.put mailbox (Fix_global_state.ModelAction action) >>= fun () -> - Lwt_zmq.Socket.(send socket "ACKED") >>= fun () -> - zmq_rep_loop (socket, mailbox) ) -;; - -let f config (zmqrep, zmqpub) (inch, outch) = - let close_channels () = - Lwt_io.printl "Connection closed, shutting down." >>= fun () -> - Lwt_io.close inch >>= fun () -> - Lwt_io.close outch - in - let open Fix_connection in - let config = { config with pub_callback = Some (zmq_publish zmqpub) } in - let connection = create config (inch, outch) in - let mailbox = get_input_mailbox connection in - let initmsg = Fix_global_state.Internal_Message ( create_session_msg connection ) in - Lwt.catch ( fun () -> - Lwt_mvar.put mailbox initmsg >>= fun () -> - Lwt.choose [ - get_heartbeat_thread connection; - get_fix_thread connection; - zmq_rep_loop (zmqrep, mailbox) - ] - ) ( fun _ -> close_channels () ) -;; - - -let run_client fixhost fixport config zmqpub zmqrep = - (* Bringing up a ZMQ sockets *) - let zmqcontext = ZMQ.Context.create () in - let zmqpubsocket = ZMQ.Socket.(create zmqcontext pub) in - let () = ZMQ.Socket.bind zmqpubsocket zmqpub in - let zmqpubsocket = Lwt_zmq.Socket.of_socket zmqpubsocket in - let zmqrepsocket = ZMQ.Socket.(create zmqcontext rep) in - let () = ZMQ.Socket.bind zmqrepsocket zmqrep in - let zmqrepsocket = Lwt_zmq.Socket.of_socket zmqrepsocket in - (* Creating the address *) - let addr = Caml_unix.( (gethostbyname fixhost).h_addr_list.(0) ) in - let addr = Caml_unix.( ADDR_INET( addr , fixport ) ) in - let () = [ - "(********* FIX Engine Client *********)"; - "(********* (c)Copyright Aesthetic Integration Limited., 2014 - 2018 *********)\n"; - Printf.sprintf " - FIX client connecting to %s:%d" fixhost fixport; - Printf.sprintf " - FIX session %s -> %s" config.Fix_connection.comp_id config.Fix_connection.target_id; - Printf.sprintf " - Internal messages are published on ZMQ socket %s" zmqpub; - Printf.sprintf " - Model actions are received on ZMQ socket %s" zmqrep; - "\n(*********************************************************************************)\n"; - ] |> String.concat "\n" |> print_endline in - let client_thread = Lwt_io.with_connection addr ( f config (zmqrepsocket, zmqpubsocket) ) in - Lwt_main.run client_thread -;; - -let mkconfig compid hostid targetid reset = - Fix_connection.{ - comp_id = compid; - host_id = Some hostid; - on_behalf_id = Some hostid; - target_id = targetid; - pub_callback = None; - reset_seq = reset; - timer = 1.0p; - } -;; - -let () = - let open Cmdliner in - let fixhost = let doc = "FIX host address" in - Arg.(value & opt string "localhost" & info ["fix-host"] ~docv:"FIXHOST" ~doc) - in - let fixport = let doc = "Port for the FIX connection" in - Arg.(value & opt int 9880i & info ["fix-port"] ~docv:"FIXPORT" ~doc) - in - let compid = let doc = "FIX Client ID" in - Arg.(value & opt string "IMANDRA" & info ["compid"] ~docv:"COMPID" ~doc) - in - let hostid = let doc = "Host ID (will be sent as SenderLocationID<142>)" in - Arg.(value & opt string "LOGIN" & info ["hostid"] ~docv:"HOSTID" ~doc) - in - let targetid = let doc = "FIX Target ID" in - Arg.(value & opt string "TARGET" & info ["targetid"] ~docv:"TARGETID" ~doc) - in - let zmqpub = - let doc = "ZMQ PUB socket adress" in - Arg.(value & opt string "tcp://*:5000" & info ["zmq-pub"] ~docv:"ZMQPUBADDR" ~doc) - in - let zmqrep = - let doc = "ZMQ REP socket adress" in - Arg.(value & opt string "tcp://*:5001" & info ["zmq-rep"] ~docv:"ZMQREPADDR" ~doc) - in - let reset = - let doc = "Whether we shall send ResetSeqNum with the logon" in - Arg.(value & flag & info ["reset-seq"] ~doc) - in - let info = let doc = "FIX engine client, publishing all internal messages on ZMQ socket." in - Term.info "server" ~version:"%%VERSION%%" ~doc ~exits:Term.default_exits - in - let config = Term.(const mkconfig $ compid $ hostid $ targetid $ reset ) in - Term.exit @@ Term.eval (Term. (const run_client $ fixhost $ fixport $ config $ zmqpub $ zmqrep ), info) -;; -[@@@logic] \ No newline at end of file diff --git a/src-simulation/dune b/src-simulation/dune index 18047814..bc1d889b 100644 --- a/src-simulation/dune +++ b/src-simulation/dune @@ -1,9 +1,9 @@ (rule - (targets client.ml) - (deps client.iml) + (targets client_utils.ml) + (deps client_utils.iml) (action - (with-stdout-to client.ml - (run imandra-extract client.iml)))) + (with-stdout-to client_utils.ml + (run imandra-extract client_utils.iml)))) (rule (targets fix_connection.ml) @@ -27,11 +27,11 @@ (run imandra-extract message_stream.iml)))) (rule - (targets server.ml) - (deps server.iml) + (targets server_utils.ml) + (deps server_utils.iml) (action - (with-stdout-to server.ml - (run imandra-extract server.iml)))) + (with-stdout-to server_utils.ml + (run imandra-extract server_utils.iml)))) (library (name fix_simulation) @@ -47,9 +47,11 @@ core_pp core_time_defaults core_time_defaults_pp + types_pp protocol_pp - conversions - imandra-base.prelude + conversions + lwt-zmq + imandra-base.prelude ) ) @@ -58,11 +60,6 @@ (modules server) (libraries lwt.unix - venue - fix_engine - fix_simulation - protocol_pp - conversions imandra-base.prelude ) ) @@ -73,15 +70,7 @@ (libraries yojson lwt.unix - venue - fix_engine - fix_simulation - conversions - protocol_pp - types_pp cmdliner - ZMQ - lwt-zmq imandra-base.prelude ) ) diff --git a/src-simulation/server.ml b/src-simulation/server.ml new file mode 100644 index 00000000..2e8ac233 --- /dev/null +++ b/src-simulation/server.ml @@ -0,0 +1,19 @@ +(** FIX 4.4 engine server implementation. *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2018 + + server.ml + +*) + +let server_thread = + let addr = Caml_unix.( ADDR_INET( inet_addr_loopback , 9880 ) ) in + let _server = Lwt_io.establish_server_with_client_address addr Server_utils.f in + print_endline "Started server on localhost:9880 ..."; + fst (Lwt.wait ()) +;; + +Lwt_main.run server_thread +;; diff --git a/src-simulation/server.iml b/src-simulation/server_utils.iml similarity index 90% rename from src-simulation/server.iml rename to src-simulation/server_utils.iml index 0ae83ce2..4b7d845c 100644 --- a/src-simulation/server.iml +++ b/src-simulation/server_utils.iml @@ -4,7 +4,7 @@ Aesthetic Integration Limited Copyright (c) 2014 - 2018 - server.ml + server_utils.iml *) [@@@program] @@ -77,14 +77,4 @@ let f _ (inch, outch) = ) ( fun _ -> close_channels () ) ;; -let server_thread = - let addr = Caml_unix.( ADDR_INET( inet_addr_loopback , 9880i ) ) in - let _server = Lwt_io.establish_server_with_client_address addr f in - print_endline "Started server on localhost:9880 ..."; - fst (Lwt.wait ()) -;; - - -"Lwt_main.run server_thread" -;; [@@@logic] \ No newline at end of file From 2c5076446cba6c4c648dc0c795f35208e8e658b6 Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Tue, 1 Oct 2019 22:42:41 +0100 Subject: [PATCH 09/19] wip: can't tell dune to compile non iml files as executables properly --- src-simulation/dune | 8 +++----- src-simulation/server.ml | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src-simulation/dune b/src-simulation/dune index bc1d889b..8a2081e3 100644 --- a/src-simulation/dune +++ b/src-simulation/dune @@ -51,7 +51,7 @@ protocol_pp conversions lwt-zmq - imandra-base.prelude + imandra-base.prelude ) ) @@ -59,8 +59,9 @@ (name server) (modules server) (libraries + lwt lwt.unix - imandra-base.prelude + unix ) ) @@ -68,9 +69,6 @@ (name client) (modules client) (libraries - yojson - lwt.unix cmdliner - imandra-base.prelude ) ) diff --git a/src-simulation/server.ml b/src-simulation/server.ml index 2e8ac233..f6251ed5 100644 --- a/src-simulation/server.ml +++ b/src-simulation/server.ml @@ -9,7 +9,7 @@ *) let server_thread = - let addr = Caml_unix.( ADDR_INET( inet_addr_loopback , 9880 ) ) in + let addr = Unix.( ADDR_INET( inet_addr_loopback , 9880 ) ) in let _server = Lwt_io.establish_server_with_client_address addr Server_utils.f in print_endline "Started server on localhost:9880 ..."; fst (Lwt.wait ()) From 4a33187217842338fcd201194234e5118a37062a Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Tue, 1 Oct 2019 22:54:56 +0100 Subject: [PATCH 10/19] wip: unix apparently empty in signature --- Makefile | 4 ++-- src-simulation/dune | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 3a102b64..b134d5e0 100644 --- a/Makefile +++ b/Makefile @@ -28,12 +28,12 @@ module_graph.svg: _build/doc/all_modules.docdir/all_modules.dot sed -e 's/rotate=90;//g' "$<" | dot -Tsvg -o $@ server: - @echo "(ignored_subdirs (src-protocol-exts-vg src-protocol-exts-pp-vg))" > dune + @echo "(ignored_subdirs (src-protocol-exts-vg src-protocol-exts-pp-vg src-core-utils-vg))" > dune dune build src-simulation/server.bc rm dune client: - @echo "(ignored_subdirs (src-protocol-exts-vg src-protocol-exts-pp-vg))" > dune + @echo "(ignored_subdirs (src-protocol-exts-vg src-protocol-exts-pp-vg src-core-utils-vg))" > dune dune build src-simulation/client.bc rm dune diff --git a/src-simulation/dune b/src-simulation/dune index 8a2081e3..dccfe9b3 100644 --- a/src-simulation/dune +++ b/src-simulation/dune @@ -59,8 +59,8 @@ (name server) (modules server) (libraries - lwt lwt.unix + fix_simulation unix ) ) @@ -70,5 +70,6 @@ (modules client) (libraries cmdliner + fix_simulation ) ) From 9f497ed9fc75a8220dce269edd65f437203ee9e0 Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Wed, 2 Oct 2019 12:45:18 +0100 Subject: [PATCH 11/19] wip: updating to make tests work with hybrid ml/iml --- Makefile | 3 +- src-simulation/client_utils.iml | 129 ------------- src-simulation/dune | 61 +----- src-simulation/fix_connection.iml | 176 ------------------ src-simulation/fix_global_state.iml | 168 ----------------- src-simulation/message_stream.iml | 53 ------ src-simulation/server_utils.iml | 79 -------- .../config_parser.iml | 0 src-tests-utils/dune | 28 +++ .../test_cache_utils.iml | 32 ++-- .../test_runner_utils.iml | 11 +- src-tests/dune | 37 +--- src-tests/test_cache.ml | 30 +++ src-tests/test_runner.ml | 10 + 14 files changed, 96 insertions(+), 721 deletions(-) delete mode 100644 src-simulation/client_utils.iml delete mode 100644 src-simulation/fix_connection.iml delete mode 100644 src-simulation/fix_global_state.iml delete mode 100644 src-simulation/message_stream.iml delete mode 100644 src-simulation/server_utils.iml rename {src-tests => src-tests-utils}/config_parser.iml (100%) create mode 100644 src-tests-utils/dune rename src-tests/test_cache.iml => src-tests-utils/test_cache_utils.iml (74%) rename src-tests/test_runner.iml => src-tests-utils/test_runner_utils.iml (94%) create mode 100644 src-tests/test_cache.ml create mode 100644 src-tests/test_runner.ml diff --git a/Makefile b/Makefile index b134d5e0..701a7496 100644 --- a/Makefile +++ b/Makefile @@ -6,13 +6,14 @@ build: rm dune build_vgs: - @echo "(ignored_subdirs (src-protocol-exts src-protocol-exts-pp src-model src-simulation src-core-utils))" > dune + @echo "(ignored_subdirs (src-protocol-exts src-protocol-exts-pp src-model src-simulation src-simulation-utils src-core-utils))" > dune dune build @install rm dune build_tests: @echo "(ignored_subdirs (src-protocol-exts-vg src-protocol-exts-pp-vg src-core-utils-vg))" > dune dune build src-tests/test_runner.bc + dune build src-tests/test_cache.bc rm dune doc: diff --git a/src-simulation/client_utils.iml b/src-simulation/client_utils.iml deleted file mode 100644 index 5593badb..00000000 --- a/src-simulation/client_utils.iml +++ /dev/null @@ -1,129 +0,0 @@ -(** FIX 4.4 engine client implementation. *) -(*** - - Aesthetic Integration Limited - Copyright (c) 2014 - 2018 - - client_utils.iml - -*) -[@@@program] -module J = Yojson.Basic -[@@@require "decoders-yojson"] -module D = Decoders_yojson.Basic.Decode -[@@@require "lwt"] -[@@@require "lwt.unix"] -[@@@require "lwt-zmq"] -[@@@require "cmdliner"] -[@@@import "../src-core-time-defaults-pp/timeDefaults_current_time.iml"] -[@@@import "../src-model/src-types-pp/model_messages_json.iml"] -[@@@import "fix_connection.iml"] -[@@@import "../src-core-time-defaults-pp/timeDefaults_json.iml"] -[@@@import "../src-model/src-types-pp/json_to_action.iml"] -[@@@import "fix_global_state.iml"] -let (>>=) = Lwt.(>>=);; - -let ctime = TimeDefaults_current_time.get_current_utctimestamp;; - -let zmq_publish socket out msg = - let msg = Model_messages_json.json_of_model_msg msg in - let rtime = Fix_connection.get_last_received_utctimestamp () in - let ztime = TimeDefaults_current_time.get_current_utctimestamp () in - let stime = Fix_connection.get_last_received_sendingtime () in - let rtime = rtime |> TimeDefaults_json.utctimestamp_to_json in - let ztime = ztime |> TimeDefaults_json.utctimestamp_to_json in - let stime = stime |> TimeDefaults_json.utctimestamp_to_json in - let tpair = - if out then ( "sent_fix" , ztime ) - else ( "received_fix" , rtime ) - in - let msg = match msg with - | `Assoc pairs -> `Assoc ( - tpair :: - ( "sent_zmq" , ztime ) :: - ( "SendingTime" , stime ) :: pairs ) - | other -> other in - let msg = Yojson.to_string msg in - Lwt_zmq.Socket.send socket msg -;; - -let rec zmq_rep_loop (socket, mailbox) = - Lwt_zmq.Socket.(recv socket) >>= fun msg -> - if msg = "LOGOUT" then - Lwt_mvar.put mailbox Fix_global_state.Terminate >>= fun () -> - Lwt_zmq.Socket.(send socket "ACKED") - else if msg = "STATUS" then - Lwt_zmq.Socket.(send socket "UP") >>= fun () -> - zmq_rep_loop (socket, mailbox) - else - let json = J.from_string msg in - match D.decode_value Json_to_action.fix_action_decoder json with - | Error _ -> ( - Lwt_zmq.Socket.(send socket "REJECTED") >>= fun () -> - zmq_rep_loop (socket, mailbox) ) - | Ok action -> ( - Lwt_mvar.put mailbox (Fix_global_state.ModelAction action) >>= fun () -> - Lwt_zmq.Socket.(send socket "ACKED") >>= fun () -> - zmq_rep_loop (socket, mailbox) ) -;; - -let f config (zmqrep, zmqpub) (inch, outch) = - let close_channels () = - Lwt_io.printl "Connection closed, shutting down." >>= fun () -> - Lwt_io.close inch >>= fun () -> - Lwt_io.close outch - in - let open Fix_connection in - let config = { config with pub_callback = Some (zmq_publish zmqpub) } in - let connection = create config (inch, outch) in - let mailbox = get_input_mailbox connection in - let initmsg = Fix_global_state.Internal_Message ( create_session_msg connection ) in - Lwt.catch ( fun () -> - Lwt_mvar.put mailbox initmsg >>= fun () -> - Lwt.choose [ - get_heartbeat_thread connection; - get_fix_thread connection; - zmq_rep_loop (zmqrep, mailbox) - ] - ) ( fun _ -> close_channels () ) -;; - - -let run_client fixhost fixport config zmqpub zmqrep = - (* Bringing up a ZMQ sockets *) - let zmqcontext = ZMQ.Context.create () in - let zmqpubsocket = ZMQ.Socket.(create zmqcontext pub) in - let () = ZMQ.Socket.bind zmqpubsocket zmqpub in - let zmqpubsocket = Lwt_zmq.Socket.of_socket zmqpubsocket in - let zmqrepsocket = ZMQ.Socket.(create zmqcontext rep) in - let () = ZMQ.Socket.bind zmqrepsocket zmqrep in - let zmqrepsocket = Lwt_zmq.Socket.of_socket zmqrepsocket in - (* Creating the address *) - let addr = Caml_unix.( (gethostbyname fixhost).h_addr_list.(0) ) in - let addr = Caml_unix.( ADDR_INET( addr , fixport ) ) in - let () = [ - "(********* FIX Engine Client *********)"; - "(********* (c)Copyright Aesthetic Integration Limited., 2014 - 2018 *********)\n"; - Printf.sprintf " - FIX client connecting to %s:%d" fixhost fixport; - Printf.sprintf " - FIX session %s -> %s" config.Fix_connection.comp_id config.Fix_connection.target_id; - Printf.sprintf " - Internal messages are published on ZMQ socket %s" zmqpub; - Printf.sprintf " - Model actions are received on ZMQ socket %s" zmqrep; - "\n(*********************************************************************************)\n"; - ] |> String.concat "\n" |> print_endline in - let client_thread = Lwt_io.with_connection addr ( f config (zmqrepsocket, zmqpubsocket) ) in - Lwt_main.run client_thread -;; - -let mkconfig compid hostid targetid reset = - Fix_connection.{ - comp_id = compid; - host_id = Some hostid; - on_behalf_id = Some hostid; - target_id = targetid; - pub_callback = None; - reset_seq = reset; - timer = 1.0p; - } -;; - -[@@@logic] \ No newline at end of file diff --git a/src-simulation/dune b/src-simulation/dune index dccfe9b3..9f0fbc8f 100644 --- a/src-simulation/dune +++ b/src-simulation/dune @@ -1,66 +1,9 @@ -(rule - (targets client_utils.ml) - (deps client_utils.iml) - (action - (with-stdout-to client_utils.ml - (run imandra-extract client_utils.iml)))) - -(rule - (targets fix_connection.ml) - (deps fix_connection.iml) - (action - (with-stdout-to fix_connection.ml - (run imandra-extract fix_connection.iml)))) - -(rule - (targets fix_global_state.ml) - (deps fix_global_state.iml) - (action - (with-stdout-to fix_global_state.ml - (run imandra-extract fix_global_state.iml)))) - -(rule - (targets message_stream.ml) - (deps message_stream.iml) - (action - (with-stdout-to message_stream.ml - (run imandra-extract message_stream.iml)))) - -(rule - (targets server_utils.ml) - (deps server_utils.iml) - (action - (with-stdout-to server_utils.ml - (run imandra-extract server_utils.iml)))) - -(library - (name fix_simulation) - (public_name fix-engine.fix_simulation) - (wrapped false) - (modules (:standard \ server client)) - (flags (:standard -open Imandra_prelude -open Unix -warn-error -A+8+39)) - (libraries - lwt.unix - venue - fix_engine - core_utils - core_pp - core_time_defaults - core_time_defaults_pp - types_pp - protocol_pp - conversions - lwt-zmq - imandra-base.prelude - ) -) - (executable (name server) (modules server) (libraries lwt.unix - fix_simulation + fix_simulation_utils unix ) ) @@ -70,6 +13,6 @@ (modules client) (libraries cmdliner - fix_simulation + fix_simulation_utils ) ) diff --git a/src-simulation/fix_connection.iml b/src-simulation/fix_connection.iml deleted file mode 100644 index 58ef9717..00000000 --- a/src-simulation/fix_connection.iml +++ /dev/null @@ -1,176 +0,0 @@ -[@@@program] -[@@@require "lwt"] -[@@@require "lwt.unix"] -[@@@import "../src-core-time-defaults-pp/timeDefaults_current_time.iml"] -[@@@import "../src-model/src-types/model_messages.iml"] -[@@@import "fix_global_state.iml"] -[@@@import "../src/fix_engine_state.iml"] -[@@@import "message_stream.iml"] -[@@@import "../src-protocol-pp/parse_full_messages.iml"] -[@@@import "../src-protocol-pp/encode_full_messages.iml"] - - -type config = { - comp_id : string; - host_id : string option; - on_behalf_id : string option; - target_id : string; - timer : float; - reset_seq : bool; - pub_callback : (bool -> Model_messages.model_msg -> unit Lwt.t) option; -} - -type t = { - heartbeat : unit Lwt.t; - fix : unit Lwt.t; - mailbox : Fix_global_state.incoming_event Lwt_mvar.t; - initmsg : Fix_engine_state.fix_engine_int_inc_msg; -} - -let get_heartbeat_thread t = t.heartbeat -let get_fix_thread t = t.fix -let get_input_mailbox t = t.mailbox -let create_session_msg t = t.initmsg - -let last_received_utctimestamp = ref ( (TimeDefaults_current_time.get_current_utctimestamp ()) ) -let get_last_received_utctimestamp () = ! last_received_utctimestamp - -let last_received_sendingtime = ref ( (TimeDefaults_current_time.get_current_utctimestamp ()) ) -let get_last_received_sendingtime () = ! last_received_sendingtime - -let read_int file = - try - let chn = open_in file in - let num = input_line chn in - let () = close_in chn in - int_of_string num - with - _exn -> 0i -;; - -let read_seqns dir = - if not(Caml_sys.file_exists dir) then - let () = Caml_unix.(mkdir dir (Z.to_int 0o775)) in (0,0) - else - let seqin = read_int Filename.(concat dir "seqin" ) in - let seqout = read_int Filename.(concat dir "seqout") in - (Z.of_int seqin, Z.of_int seqout) -;; - -let make_engine_state session_dir config = - let open Fix_engine_state in - let inseq,outseq = read_seqns session_dir in - { init_fix_engine_state with - fe_comp_id = config.comp_id - ; fe_sender_location_id = config.host_id - ; fe_on_behalf_of_comp_id = config.on_behalf_id - ; fe_target_comp_id = config.target_id - ; fe_curr_time = TimeDefaults_current_time.get_current_utctimestamp () - ; fe_max_num_logons_sent = 10 - ; fe_application_up = true - ; incoming_seq_num = inseq - ; outgoing_seq_num = outseq - } - -let (>>=) = Lwt.(>>=) - -(** Timechange thread *) - -let do_timechange mailbox = - let time = TimeDefaults_current_time.get_current_utctimestamp () in - let timechange = Fix_engine_state.IncIntMsg_TimeChange time in - let timechange = Fix_global_state.Internal_Message timechange in - Lwt_mvar.put mailbox timechange -;; - -(** Heartbeat thread *) - -let rec heartbeat_thread mailbox = - Lwt_unix.sleep (Q.to_float 1.0) >>= fun () -> - do_timechange mailbox >>= fun () -> - heartbeat_thread mailbox -;; - - -let write_seqn session_dir fname msg = - let open Full_messages in - if msg = Garbled then Lwt.return_unit else - let seqn = match msg with - | ValidMsg data -> data.full_msg_header.h_msg_seq_num - | SessionRejectedMsg data -> data.srej_msg_msg_seq_num - | BusinessRejectedMsg data -> data.brej_msg_ref_seq_num - | Garbled -> 0 - in - let filename = Filename.(concat session_dir fname) in - Lwt_io.(open_file ~mode:output filename) >>= fun fch -> - Lwt_io.write fch (String.of_int seqn) >>= fun () -> - Lwt_io.close fch -;; - -let log_flags = Caml_unix.[O_WRONLY; O_APPEND; O_CREAT];; -let store_senging_time msg = - let open Full_messages in - match msg with - | ValidMsg data -> ( last_received_sendingtime := data.full_msg_header.h_sending_time ) - | _ -> () -;; - - -let fix_thread session_dir inch mailbox = - let filename = Filename.(concat session_dir "fix.log") in - Message_stream.from_channel ~verbose:true inch - |> Lwt_stream.iter_s ( fun msg -> - let () = last_received_utctimestamp := (TimeDefaults_current_time.get_current_utctimestamp ()) in - let str = msg |> List.map (fun (k,v) -> k ^ "=" ^ v) - |> String.concat "|" - |> fun s -> s ^ "|\n" - in - Lwt_io.(open_file ~flags:log_flags ~mode:output filename) >>= fun fch -> - Lwt_io.write fch str >>= fun () -> - Lwt_io.close fch >>= fun () -> - let msg = Parse_full_messages.parse_top_level_msg msg in - let () = store_senging_time msg in - write_seqn session_dir "seqin" msg >>= fun () -> - do_timechange mailbox >>= fun () -> - Lwt_mvar.put mailbox (Fix_global_state.FIX_Message msg) - ) -;; - -let send_msg session_dir outch fmsg = - let filename = Filename.(concat session_dir "fix.log") in - match fmsg with - | Full_messages.ValidMsg msg -> begin - let wire = Encode_full_messages.encode_full_valid_msg msg in - let log = Caml.String.map (function '\001' -> '|' | c -> c) wire ^ "\n" in - Lwt_io.(open_file ~flags:log_flags ~mode:output filename) >>= fun fch -> - Lwt_io.write fch log >>= fun () -> - Lwt_io.close fch >>= fun () -> - Lwt_io.write outch wire >>= fun () -> - Lwt_io.flush outch >>= fun () -> - write_seqn session_dir "seqout" fmsg - end - | _ -> Lwt.return_unit -;; - -let create config (inch, outch) = - let hostid = match config.host_id with None -> "NoHostid" | Some host_id -> host_id in - let session_folder = Printf.sprintf "%s.%s.%s.session" config.comp_id config.target_id hostid in - let engine_state = make_engine_state session_folder config in - let initmsg = Fix_engine_state.(IncIntMsg_CreateSession { - dest_comp_id = engine_state.fe_target_comp_id; - reset_seq_num = config.reset_seq - } ) in - let mailbox, _global_state = - Fix_global_state.start - ~pub:config.pub_callback - engine_state - State.init_model_state - (send_msg session_folder outch) - in { - heartbeat = heartbeat_thread mailbox; - fix = fix_thread session_folder inch mailbox; - mailbox = mailbox; - initmsg = initmsg - } -;; -[@@@logic] \ No newline at end of file diff --git a/src-simulation/fix_global_state.iml b/src-simulation/fix_global_state.iml deleted file mode 100644 index 96d6ade4..00000000 --- a/src-simulation/fix_global_state.iml +++ /dev/null @@ -1,168 +0,0 @@ -[@@@program] -[@@@require "lwt"] -[@@@require "lwt.unix"] -[@@@import "../src-protocol/full_messages.iml"] -[@@@import "../src/fix_engine_state.iml"] -[@@@import "../src-model/src-types/actions.iml"] -[@@@import "../src-model/src-types/model_messages.iml"] -[@@@import "../src-model/src-types/state.iml"] -[@@@import "../src-protocol-pp/full_messages_json.iml"] -[@@@import "../src/fix_engine.iml"] -[@@@import "../src-model/src-conversions/type_converter.iml"] -[@@@import "../src-model/src/venue.iml"] -[@@@import "../src-core-utils/message_utils.iml"] -let (>>=) = Lwt.(>>=) - - -type incoming_event = - | FIX_Message of Full_messages.full_top_level_msg - | Internal_Message of Fix_engine_state.fix_engine_int_inc_msg - | ModelAction of Actions.fix_action - | Terminate - -(** Global state contains a fix_engine state and model_state *) -type fix_global_state = { - incoming : incoming_event Lwt_mvar.t; - pub_callback : (bool -> Model_messages.model_msg -> unit Lwt.t) option; - engine_state : Fix_engine_state.fix_engine_state; - model_state : State.model_state; - fix_callback : Full_messages.full_top_level_msg -> unit Lwt.t -} - -let _pp_incoming = function - | FIX_Message ( ValidMsg m ) -> - "FIX_Message (ValidMsg): " - ^ "\n - " ^ Yojson.pretty_to_string (Full_messages_json.full_msg_to_json m.full_msg_data) - | FIX_Message ( SessionRejectedMsg m ) -> - "FIX_Message (SessionRejectedMsg): " - ^ "\n - " ^ Yojson.pretty_to_string (Full_messages_json.session_rejected_msg_to_json m) - | FIX_Message ( BusinessRejectedMsg m ) -> - "FIX_Message (BusinessRejectedMsg): " - ^ "\n - " ^ Yojson.pretty_to_string (Full_messages_json.biz_rejected_msg_to_json m) - | FIX_Message ( Garbled ) -> "FIX_Message (Garbled)" - | Internal_Message _ -> "Internal_Message" - | ModelAction _ -> "ModelAction" - | Terminate -> "Terminate" - - -(** Running Fix_engine.one_step while there are outgoing messages and - calling the fix_callback function for each *) -let rec send_all_outgoing_fix engine_state fix_callback = - let open Fix_engine_state in - match engine_state.outgoing_fix_msg with - | None -> Lwt.return engine_state - | Some msg -> begin - fix_callback msg >>= fun () -> - let engine_state = { engine_state with outgoing_fix_msg = None } in (* NOTE: I'm cleaning the out slot here *) - let engine_state = Fix_engine.one_step engine_state in - send_all_outgoing_fix engine_state fix_callback - end -;; - -(** Iterating over a list of model messages, pass each into fix_eigine and - send anything that fix_engine produces *) -let rec send_messages_list messages engine_state fix_callback ( pub_callback : (bool -> Model_messages.model_msg -> unit Lwt.t) option) = - let open Fix_engine_state in - match messages with - | [] -> Lwt.return engine_state - | hd::tl -> ( - let data = Type_converter.convert_model_to_full_fix hd in - let msg = IncIntMsg_ApplicationData data in - let engine_state = { engine_state with incoming_int_msg = Some msg } in - let engine_state = Fix_engine.one_step engine_state in - ( match pub_callback with None -> Lwt.return_unit | Some f -> f true hd ) >>= fun () -> - send_all_outgoing_fix engine_state fix_callback >>= fun engine_state -> - send_messages_list tl engine_state fix_callback pub_callback - ) -;; - - -let rec while_busy_loop state = - let engine_state = state.engine_state in - let engine_state = Fix_engine.one_step engine_state in - (* THEOREM : after one_step we can get either ontgoing internal - or outgoing FIX message *) - begin match ( engine_state.outgoing_fix_msg , engine_state.outgoing_int_msg) with - (* On outgoing FIX message we send it and clean outgoing slot.*) - | Some msg, None -> begin - state.fix_callback msg >>= fun () -> - let engine_state = { engine_state with outgoing_fix_msg = None } in - Lwt.return { state with engine_state = engine_state } - end - | None, Some _msg -> begin - let model_state = state.model_state in - ( match engine_state.outgoing_int_msg with - | Some ( OutIntMsg_ApplicationData data ) -> - let model_message = Type_converter.convert_full_to_model_fix data in - ( match (Message_utils.get_normal_message model_message) , state.pub_callback with - | Some m , Some f -> f false m - | _ -> Lwt.return_unit - ) >>= fun () -> - let model_state = { model_state with State.incoming_msg = model_message } in - Lwt.return @@ Venue.one_step model_state - | Some ( OutIntMsg_ResendApplicationData data ) -> - let model_message = Type_converter.convert_full_to_model_fix data in - let model_message = Message_utils.get_resend_message model_message in - let model_state = { model_state with State.incoming_msg = model_message } in - Lwt.return @@ Venue.one_step model_state - | _ -> Lwt.return model_state (* TODO -- see what to do with other messages *) - ) >>= fun model_state -> - let engine_state = { engine_state with outgoing_int_msg = None } in - send_messages_list - model_state.State.outgoing_msgs - engine_state - state.fix_callback - state.pub_callback >>= fun engine_state -> - Lwt.return { state with - engine_state = engine_state ; - model_state = { model_state with State.outgoing_msgs = [] } } - end - | None, None -> Lwt.return { state with engine_state = engine_state } - | _ -> Lwt.fail_with "Critical internal error in fix_engine model" - end >>= fun state -> - if Fix_engine_state.engine_state_busy state.engine_state then - while_busy_loop state - else Lwt.return state -;; - -let rec main_loop state = - let open Fix_engine_state in - Lwt_mvar.take state.incoming >>= fun incoming -> -(* Lwt_io.printf "Main_loop received incoming : %s\n" (pp_incoming incoming) >>= fun () -> *) - Lwt_io.flush_all () >>= fun () -> - match incoming with - | Terminate -> Lwt.return_unit - | Internal_Message msg -> - let state = { state with engine_state = { state.engine_state with incoming_int_msg = Some msg } } in - while_busy_loop state >>= fun state -> - main_loop state - | FIX_Message msg -> - let state = { state with engine_state = { state.engine_state with incoming_fix_msg = Some msg } } in - while_busy_loop state >>= fun state -> - main_loop state - | ModelAction act -> - let model_state = {state.model_state with State.incoming_action = Some act } in - let model_state = Venue.one_step model_state in - let engine_state = { state.engine_state with outgoing_int_msg = None } in - send_messages_list - model_state.State.outgoing_msgs - engine_state - state.fix_callback - state.pub_callback >>= fun engine_state -> - Lwt.return { state with - engine_state = engine_state ; - model_state = { model_state with State.outgoing_msgs = [] } } >>= fun state -> - main_loop state -;; - -let start ?pub:(pub_callback=None) init_engine init_model fix_callback = - let state = { - incoming = Lwt_mvar.create_empty (); - engine_state = init_engine; - model_state = init_model; - fix_callback = fix_callback; - pub_callback = pub_callback - } in - ( state.incoming , main_loop state ) -;; -[@@@logic] \ No newline at end of file diff --git a/src-simulation/message_stream.iml b/src-simulation/message_stream.iml deleted file mode 100644 index 1462bacd..00000000 --- a/src-simulation/message_stream.iml +++ /dev/null @@ -1,53 +0,0 @@ - -[@@@program] -[@@@require "lwt"] -[@@@require "lwt.unix"] -let (>>=) = Lwt.(>>=);; - -let split_into_key_value (spliton : char) ( stream : char Lwt_stream.t ) : (string * string) Lwt_stream.t = - (* Converts [ '5'; '2'; '='; 'A' ] to ("52" , "A" ) *) - let get_key_value (chlist : char list) : string * string = - List.fold_left (fun ((k,v),f) char -> match char with - | '=' -> ((k,v), true) - | c -> if f then (( k, v ^ String.make 1i c ), f) - else (( k ^ String.make 1i c, v ), f) - ) (("", ""), false) chlist - |> fst - in - let f () = - Lwt_stream.get_while (fun c -> c <> spliton) stream >>= fun chlist -> - Lwt_stream.junk stream >>= fun () -> - if chlist <> [] - then ( - let k,v = get_key_value chlist in - Lwt.return_some (k,v) - ) - else Lwt.return_none - in - Lwt_stream.from f -;; - -let split_into_messages (verbose:bool) (stream : (string * string) Lwt_stream.t) = - let f () = - Lwt_stream.get_while (fun (k,_v) -> k <> "10") stream >>= fun msg -> - Lwt_stream.get stream >>= function None -> Lwt.return_none | Some chsum -> - if msg <> [] - then ( - let msg = (msg @ [chsum]) in - let str = msg - |> List.map (fun (k,v) -> k ^ "=" ^ v) - |> String.concat "|" in - (if verbose then Lwt_io.printl ("Receive: " ^ str ) else Lwt.return_unit) >>= fun () -> - Lwt.return_some msg - ) - else Lwt.return_none - in - Lwt_stream.from f -;; - -let from_channel ?(verbose=false) ?(spliton='\001') inch = - Lwt_io.read_chars inch - |> split_into_key_value spliton - |> split_into_messages verbose -;; -[@@@logic] diff --git a/src-simulation/server_utils.iml b/src-simulation/server_utils.iml deleted file mode 100644 index f267e683..00000000 --- a/src-simulation/server_utils.iml +++ /dev/null @@ -1,79 +0,0 @@ -(** FIX 4.4 engine server implementation. *) -(*** - - Aesthetic Integration Limited - Copyright (c) 2014 - 2018 - - server_utils.iml - -*) -[@@@program] -[@@@require "lwt"] -[@@@require "lwt.unix"] -[@@@import "../src-core-time-defaults-pp/timeDefaults_current_time.iml"] -[@@@import "../src/fix_engine_state.iml"] -[@@@import "../src-protocol/full_messages.iml"] -[@@@import "../src-protocol-pp/encode_full_messages.iml"] -[@@@import "../src-protocol-pp/parse_full_messages.iml"] -[@@@import "fix_global_state.iml"] -[@@@import "message_stream.iml"] -let (>>=) = Lwt.(>>=);; - -let engine_state = - let open Fix_engine_state in - { init_fix_engine_state with - fe_comp_id = "IMANDRA"; - fe_target_comp_id = "BANZAI"; - fe_curr_time = TimeDefaults_current_time.get_current_utctimestamp (); - fe_max_num_logons_sent = 10; - fe_application_up = true } -;; - - -let send_msg outch msg = - match msg with - | Full_messages.ValidMsg msg -> begin - let wire = Encode_full_messages.encode_full_valid_msg msg in - Lwt_io.print ("Sending (" ^ wire ^ ") " ) >>= fun () -> - Lwt_io.flush_all () >>= fun () -> - Lwt_io.write outch wire >>= fun () -> - Lwt_io.flush outch >>= fun () -> - Lwt_io.printl " done." - end - | _ -> Lwt.return_unit -;; - -let do_timechange mailbox = - let time = TimeDefaults_current_time.get_current_utctimestamp () in - let timechange = Fix_engine_state.IncIntMsg_TimeChange time in - let timechange = Fix_global_state.Internal_Message timechange in - Lwt_mvar.put mailbox timechange -;; - -let rec heartbeat_thread mailbox = - Lwt_unix.sleep (Q.to_float 1.0) >>= fun () -> - do_timechange mailbox >>= fun () -> - heartbeat_thread mailbox -;; - -let f _ (inch, outch) = - let close_channels () = - Lwt_io.printl "Connection closed, shutting down." >>= fun () -> - Lwt_io.close inch >>= fun () -> - Lwt_io.close outch - in - let mailbox, _global_state = Fix_global_state.start engine_state State.init_model_state (send_msg outch) in - Lwt.catch ( fun () -> - Lwt_io.printl "Received a connection." >>= fun () -> - Lwt.join [ - heartbeat_thread mailbox; - Message_stream.from_channel ~verbose:true inch - |> Lwt_stream.map Parse_full_messages.parse_top_level_msg - |> Lwt_stream.iter_s ( fun msg -> - do_timechange mailbox >>= fun () -> - Lwt_mvar.put mailbox (Fix_global_state.FIX_Message msg) - ) - ] - ) ( fun _ -> close_channels () ) -;; -[@@@logic] diff --git a/src-tests/config_parser.iml b/src-tests-utils/config_parser.iml similarity index 100% rename from src-tests/config_parser.iml rename to src-tests-utils/config_parser.iml diff --git a/src-tests-utils/dune b/src-tests-utils/dune new file mode 100644 index 00000000..2d9ca25e --- /dev/null +++ b/src-tests-utils/dune @@ -0,0 +1,28 @@ +(rule + (targets config_parser.ml) + (deps config_parser.iml) + (action + (with-stdout-to config_parser.ml + (run imandra-extract config_parser.iml)))) + +(rule + (targets test_cache_utils.ml) + (deps test_cache_utils.iml) + (action + (with-stdout-to test_cache_utils.ml + (run imandra-extract test_cache_utils.iml)))) + +(rule + (targets test_runner_utils.ml) + (deps test_runner_utils.iml) + (action + (with-stdout-to test_runner_utils.ml + (run imandra-extract test_runner_utils.iml)))) + +(library + (name test_utils) + (public_name fix-engine.test_utils) + (wrapped false) + (flags (:standard -open Imandra_prelude -warn-error -A+8+39)) + (libraries imandra-base.prelude yojson protocol_pp core_printer lwt lwt.unix fix_simulation_utils) +) diff --git a/src-tests/test_cache.iml b/src-tests-utils/test_cache_utils.iml similarity index 74% rename from src-tests/test_cache.iml rename to src-tests-utils/test_cache_utils.iml index 0d1a3ec1..da745b8b 100644 --- a/src-tests/test_cache.iml +++ b/src-tests-utils/test_cache_utils.iml @@ -42,13 +42,6 @@ let cache = [ make_fix_msg (15); ];; -print_string "The old cache:\n";; -print_string ( Yojson.pretty_to_string ( Full_messages_json.full_msg_list_to_json (cache) ));; - -print_string "\n\nThe new cache\n";; -let new_cache = add_to_cache (make_fix_msg (12), cache);; -print_string ( Yojson.pretty_to_string ( Full_messages_json.full_msg_list_to_json (new_cache) ));; - (** Can we transition correctly? *) let check_cache (c, idx) = if is_cache_complete (c, idx) then @@ -57,28 +50,35 @@ let check_cache (c, idx) = print_endline "\nCache incomplete" ;; -pe "\nShould be fine - since 0th we have everything";; -check_cache([ +let new_cache_fix_msg = make_fix_msg (12) +;; + +let test_cache_index = 0 +;; + +let cache1 = [ make_fix_msg (1); make_fix_msg (2); make_fix_msg (3); make_fix_msg (4); -], 0);; +] +;; -pe "\nFails - missing 5-9";; -check_cache([ +let cache2 = [ make_fix_msg (1); make_fix_msg (2); make_fix_msg (3); make_fix_msg (4); make_fix_msg (10); -], 0);; +] +;; -pe "\nFails - missing 1st";; -check_cache([ +let cache3 = [ make_fix_msg (2); make_fix_msg (3); make_fix_msg (4); make_fix_msg (5); -], 0);; +] +;; + [@@@logic] diff --git a/src-tests/test_runner.iml b/src-tests-utils/test_runner_utils.iml similarity index 94% rename from src-tests/test_runner.iml rename to src-tests-utils/test_runner_utils.iml index 2b30550e..3b340c42 100644 --- a/src-tests/test_runner.iml +++ b/src-tests-utils/test_runner_utils.iml @@ -17,7 +17,7 @@ open TimeDefaults_parser [@@@import "../src-protocol-pp/parse_full_tags.iml"] [@@@import "../src-protocol-pp/full_admin_tags_json.iml"] [@@@import "../src-protocol-exts-pp/full_app_tags_json.iml"] -[@@@import "../src-simulation/message_stream.iml"] +[@@@import "../src-simulation-utils/message_stream.iml"] [@@@require "cmdliner"] let (>>=) = Lwt.(>>=);; @@ -192,13 +192,4 @@ let def_reader filename = end |> Lwt_main.run ;; -let () = - let open Cmdliner in - let doc = "Tests a FIX server following a *.def script file." in - let info = - Term.info "test_runner" ~version:"%%VERSION%%" ~doc ~exits:Term.default_exits - in - let def_fname = Arg.(value & pos 0i string "" & info []) in - Term.exit @@ Term.eval (Term. (const def_reader $ def_fname ), info) -;; [@@@logic] \ No newline at end of file diff --git a/src-tests/dune b/src-tests/dune index 2e82048a..35d16b7e 100644 --- a/src-tests/dune +++ b/src-tests/dune @@ -1,35 +1,12 @@ -(rule - (targets config_parser.ml) - (deps config_parser.iml) - (action - (with-stdout-to config_parser.ml - (run imandra-extract config_parser.iml)))) -(rule - (targets test_cache.ml) - (deps test_cache.iml) - (action - (with-stdout-to test_cache.ml - (run imandra-extract test_cache.iml)))) - -(rule - (targets test_runner.ml) - (deps test_runner.iml) - (action - (with-stdout-to test_runner.ml - (run imandra-extract test_runner.iml)))) - -(library - (name test) - (public_name fix-engine.test) - (wrapped false) - (modules test_cache) - (flags (:standard -open Imandra_prelude -warn-error -A+8+39)) - (libraries imandra-base.prelude yojson protocol_pp core_printer) +(executable + (name test_runner) + (libraries threads cmdliner lwt.unix fix_simulation_utils protocol_pp core_printer test_utils) + (modules test_runner) ) (executable - (name test_runner) - (libraries threads cmdliner lwt.unix fix_simulation protocol_pp core_printer) - (modules test_runner config_parser) + (name test_cache) + (libraries test_utils fix_engine) + (modules test_cache) ) diff --git a/src-tests/test_cache.ml b/src-tests/test_cache.ml new file mode 100644 index 00000000..b147d9a6 --- /dev/null +++ b/src-tests/test_cache.ml @@ -0,0 +1,30 @@ +(** Tests for caching logic. *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2018 + + test_cache.ml + +*) + +let pe = print_endline;; + + +print_string "The old cache:\n";; +print_string ( Yojson.pretty_to_string ( Full_messages_json.full_msg_list_to_json (Test_cache_utils.cache) ));; + +print_string "\n\nThe new cache\n";; +let new_cache = Fix_engine_transitions.add_to_cache (Test_cache_utils.new_cache_fix_msg, Test_cache_utils.cache);; +print_string ( Yojson.pretty_to_string ( Full_messages_json.full_msg_list_to_json (new_cache) ));; + +(* Can we transition correctly? *) +(* make these fix_msgs in utils and import *) +pe "\nShould be fine - since 0th we have everything";; +Test_cache_utils.check_cache(Test_cache_utils.cache1, Test_cache_utils.test_cache_index);; + +pe "\nFails - missing 5-9";; +Test_cache_utils.check_cache(Test_cache_utils.cache2, Test_cache_utils.test_cache_index);; + +pe "\nFails - missing 1st";; +Test_cache_utils.check_cache(Test_cache_utils.cache3, Test_cache_utils.test_cache_index);; diff --git a/src-tests/test_runner.ml b/src-tests/test_runner.ml new file mode 100644 index 00000000..d901aa95 --- /dev/null +++ b/src-tests/test_runner.ml @@ -0,0 +1,10 @@ + +let () = + let open Cmdliner in + let doc = "Tests a FIX server following a *.def script file." in + let info = + Term.info "test_runner" ~version:"%%VERSION%%" ~doc ~exits:Term.default_exits + in + let def_fname = Arg.(value & pos 0 string "" & info []) in + Term.exit @@ Term.eval (Term. (const Test_runner_utils.def_reader $ def_fname ), info) +;; From 5597e7b7394b63c1c822ae745edc2f43254e1e9f Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Wed, 2 Oct 2019 12:46:15 +0100 Subject: [PATCH 12/19] fix: adding utils for simulation --- src-simulation-utils/client_utils.iml | 129 ++++++++++++++++ src-simulation-utils/dune | 56 +++++++ src-simulation-utils/fix_connection.iml | 176 ++++++++++++++++++++++ src-simulation-utils/fix_global_state.iml | 168 +++++++++++++++++++++ src-simulation-utils/message_stream.iml | 53 +++++++ src-simulation-utils/server_utils.iml | 79 ++++++++++ 6 files changed, 661 insertions(+) create mode 100644 src-simulation-utils/client_utils.iml create mode 100644 src-simulation-utils/dune create mode 100644 src-simulation-utils/fix_connection.iml create mode 100644 src-simulation-utils/fix_global_state.iml create mode 100644 src-simulation-utils/message_stream.iml create mode 100644 src-simulation-utils/server_utils.iml diff --git a/src-simulation-utils/client_utils.iml b/src-simulation-utils/client_utils.iml new file mode 100644 index 00000000..5593badb --- /dev/null +++ b/src-simulation-utils/client_utils.iml @@ -0,0 +1,129 @@ +(** FIX 4.4 engine client implementation. *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2018 + + client_utils.iml + +*) +[@@@program] +module J = Yojson.Basic +[@@@require "decoders-yojson"] +module D = Decoders_yojson.Basic.Decode +[@@@require "lwt"] +[@@@require "lwt.unix"] +[@@@require "lwt-zmq"] +[@@@require "cmdliner"] +[@@@import "../src-core-time-defaults-pp/timeDefaults_current_time.iml"] +[@@@import "../src-model/src-types-pp/model_messages_json.iml"] +[@@@import "fix_connection.iml"] +[@@@import "../src-core-time-defaults-pp/timeDefaults_json.iml"] +[@@@import "../src-model/src-types-pp/json_to_action.iml"] +[@@@import "fix_global_state.iml"] +let (>>=) = Lwt.(>>=);; + +let ctime = TimeDefaults_current_time.get_current_utctimestamp;; + +let zmq_publish socket out msg = + let msg = Model_messages_json.json_of_model_msg msg in + let rtime = Fix_connection.get_last_received_utctimestamp () in + let ztime = TimeDefaults_current_time.get_current_utctimestamp () in + let stime = Fix_connection.get_last_received_sendingtime () in + let rtime = rtime |> TimeDefaults_json.utctimestamp_to_json in + let ztime = ztime |> TimeDefaults_json.utctimestamp_to_json in + let stime = stime |> TimeDefaults_json.utctimestamp_to_json in + let tpair = + if out then ( "sent_fix" , ztime ) + else ( "received_fix" , rtime ) + in + let msg = match msg with + | `Assoc pairs -> `Assoc ( + tpair :: + ( "sent_zmq" , ztime ) :: + ( "SendingTime" , stime ) :: pairs ) + | other -> other in + let msg = Yojson.to_string msg in + Lwt_zmq.Socket.send socket msg +;; + +let rec zmq_rep_loop (socket, mailbox) = + Lwt_zmq.Socket.(recv socket) >>= fun msg -> + if msg = "LOGOUT" then + Lwt_mvar.put mailbox Fix_global_state.Terminate >>= fun () -> + Lwt_zmq.Socket.(send socket "ACKED") + else if msg = "STATUS" then + Lwt_zmq.Socket.(send socket "UP") >>= fun () -> + zmq_rep_loop (socket, mailbox) + else + let json = J.from_string msg in + match D.decode_value Json_to_action.fix_action_decoder json with + | Error _ -> ( + Lwt_zmq.Socket.(send socket "REJECTED") >>= fun () -> + zmq_rep_loop (socket, mailbox) ) + | Ok action -> ( + Lwt_mvar.put mailbox (Fix_global_state.ModelAction action) >>= fun () -> + Lwt_zmq.Socket.(send socket "ACKED") >>= fun () -> + zmq_rep_loop (socket, mailbox) ) +;; + +let f config (zmqrep, zmqpub) (inch, outch) = + let close_channels () = + Lwt_io.printl "Connection closed, shutting down." >>= fun () -> + Lwt_io.close inch >>= fun () -> + Lwt_io.close outch + in + let open Fix_connection in + let config = { config with pub_callback = Some (zmq_publish zmqpub) } in + let connection = create config (inch, outch) in + let mailbox = get_input_mailbox connection in + let initmsg = Fix_global_state.Internal_Message ( create_session_msg connection ) in + Lwt.catch ( fun () -> + Lwt_mvar.put mailbox initmsg >>= fun () -> + Lwt.choose [ + get_heartbeat_thread connection; + get_fix_thread connection; + zmq_rep_loop (zmqrep, mailbox) + ] + ) ( fun _ -> close_channels () ) +;; + + +let run_client fixhost fixport config zmqpub zmqrep = + (* Bringing up a ZMQ sockets *) + let zmqcontext = ZMQ.Context.create () in + let zmqpubsocket = ZMQ.Socket.(create zmqcontext pub) in + let () = ZMQ.Socket.bind zmqpubsocket zmqpub in + let zmqpubsocket = Lwt_zmq.Socket.of_socket zmqpubsocket in + let zmqrepsocket = ZMQ.Socket.(create zmqcontext rep) in + let () = ZMQ.Socket.bind zmqrepsocket zmqrep in + let zmqrepsocket = Lwt_zmq.Socket.of_socket zmqrepsocket in + (* Creating the address *) + let addr = Caml_unix.( (gethostbyname fixhost).h_addr_list.(0) ) in + let addr = Caml_unix.( ADDR_INET( addr , fixport ) ) in + let () = [ + "(********* FIX Engine Client *********)"; + "(********* (c)Copyright Aesthetic Integration Limited., 2014 - 2018 *********)\n"; + Printf.sprintf " - FIX client connecting to %s:%d" fixhost fixport; + Printf.sprintf " - FIX session %s -> %s" config.Fix_connection.comp_id config.Fix_connection.target_id; + Printf.sprintf " - Internal messages are published on ZMQ socket %s" zmqpub; + Printf.sprintf " - Model actions are received on ZMQ socket %s" zmqrep; + "\n(*********************************************************************************)\n"; + ] |> String.concat "\n" |> print_endline in + let client_thread = Lwt_io.with_connection addr ( f config (zmqrepsocket, zmqpubsocket) ) in + Lwt_main.run client_thread +;; + +let mkconfig compid hostid targetid reset = + Fix_connection.{ + comp_id = compid; + host_id = Some hostid; + on_behalf_id = Some hostid; + target_id = targetid; + pub_callback = None; + reset_seq = reset; + timer = 1.0p; + } +;; + +[@@@logic] \ No newline at end of file diff --git a/src-simulation-utils/dune b/src-simulation-utils/dune new file mode 100644 index 00000000..9a3e7b9f --- /dev/null +++ b/src-simulation-utils/dune @@ -0,0 +1,56 @@ +(rule + (targets client_utils.ml) + (deps client_utils.iml) + (action + (with-stdout-to client_utils.ml + (run imandra-extract client_utils.iml)))) + +(rule + (targets fix_connection.ml) + (deps fix_connection.iml) + (action + (with-stdout-to fix_connection.ml + (run imandra-extract fix_connection.iml)))) + +(rule + (targets fix_global_state.ml) + (deps fix_global_state.iml) + (action + (with-stdout-to fix_global_state.ml + (run imandra-extract fix_global_state.iml)))) + +(rule + (targets message_stream.ml) + (deps message_stream.iml) + (action + (with-stdout-to message_stream.ml + (run imandra-extract message_stream.iml)))) + +(rule + (targets server_utils.ml) + (deps server_utils.iml) + (action + (with-stdout-to server_utils.ml + (run imandra-extract server_utils.iml)))) + +(library + (name fix_simulation_utils) + (public_name fix-engine.fix_simulation_utils) + (wrapped false) + (flags (:standard -open Imandra_prelude -open Unix -warn-error -A+8+39)) + (libraries + lwt.unix + venue + fix_engine + core_utils + core_pp + core_time_defaults + core_time_defaults_pp + types_pp + protocol_pp + conversions + lwt-zmq + imandra-base.prelude + ) +) + diff --git a/src-simulation-utils/fix_connection.iml b/src-simulation-utils/fix_connection.iml new file mode 100644 index 00000000..58ef9717 --- /dev/null +++ b/src-simulation-utils/fix_connection.iml @@ -0,0 +1,176 @@ +[@@@program] +[@@@require "lwt"] +[@@@require "lwt.unix"] +[@@@import "../src-core-time-defaults-pp/timeDefaults_current_time.iml"] +[@@@import "../src-model/src-types/model_messages.iml"] +[@@@import "fix_global_state.iml"] +[@@@import "../src/fix_engine_state.iml"] +[@@@import "message_stream.iml"] +[@@@import "../src-protocol-pp/parse_full_messages.iml"] +[@@@import "../src-protocol-pp/encode_full_messages.iml"] + + +type config = { + comp_id : string; + host_id : string option; + on_behalf_id : string option; + target_id : string; + timer : float; + reset_seq : bool; + pub_callback : (bool -> Model_messages.model_msg -> unit Lwt.t) option; +} + +type t = { + heartbeat : unit Lwt.t; + fix : unit Lwt.t; + mailbox : Fix_global_state.incoming_event Lwt_mvar.t; + initmsg : Fix_engine_state.fix_engine_int_inc_msg; +} + +let get_heartbeat_thread t = t.heartbeat +let get_fix_thread t = t.fix +let get_input_mailbox t = t.mailbox +let create_session_msg t = t.initmsg + +let last_received_utctimestamp = ref ( (TimeDefaults_current_time.get_current_utctimestamp ()) ) +let get_last_received_utctimestamp () = ! last_received_utctimestamp + +let last_received_sendingtime = ref ( (TimeDefaults_current_time.get_current_utctimestamp ()) ) +let get_last_received_sendingtime () = ! last_received_sendingtime + +let read_int file = + try + let chn = open_in file in + let num = input_line chn in + let () = close_in chn in + int_of_string num + with + _exn -> 0i +;; + +let read_seqns dir = + if not(Caml_sys.file_exists dir) then + let () = Caml_unix.(mkdir dir (Z.to_int 0o775)) in (0,0) + else + let seqin = read_int Filename.(concat dir "seqin" ) in + let seqout = read_int Filename.(concat dir "seqout") in + (Z.of_int seqin, Z.of_int seqout) +;; + +let make_engine_state session_dir config = + let open Fix_engine_state in + let inseq,outseq = read_seqns session_dir in + { init_fix_engine_state with + fe_comp_id = config.comp_id + ; fe_sender_location_id = config.host_id + ; fe_on_behalf_of_comp_id = config.on_behalf_id + ; fe_target_comp_id = config.target_id + ; fe_curr_time = TimeDefaults_current_time.get_current_utctimestamp () + ; fe_max_num_logons_sent = 10 + ; fe_application_up = true + ; incoming_seq_num = inseq + ; outgoing_seq_num = outseq + } + +let (>>=) = Lwt.(>>=) + +(** Timechange thread *) + +let do_timechange mailbox = + let time = TimeDefaults_current_time.get_current_utctimestamp () in + let timechange = Fix_engine_state.IncIntMsg_TimeChange time in + let timechange = Fix_global_state.Internal_Message timechange in + Lwt_mvar.put mailbox timechange +;; + +(** Heartbeat thread *) + +let rec heartbeat_thread mailbox = + Lwt_unix.sleep (Q.to_float 1.0) >>= fun () -> + do_timechange mailbox >>= fun () -> + heartbeat_thread mailbox +;; + + +let write_seqn session_dir fname msg = + let open Full_messages in + if msg = Garbled then Lwt.return_unit else + let seqn = match msg with + | ValidMsg data -> data.full_msg_header.h_msg_seq_num + | SessionRejectedMsg data -> data.srej_msg_msg_seq_num + | BusinessRejectedMsg data -> data.brej_msg_ref_seq_num + | Garbled -> 0 + in + let filename = Filename.(concat session_dir fname) in + Lwt_io.(open_file ~mode:output filename) >>= fun fch -> + Lwt_io.write fch (String.of_int seqn) >>= fun () -> + Lwt_io.close fch +;; + +let log_flags = Caml_unix.[O_WRONLY; O_APPEND; O_CREAT];; +let store_senging_time msg = + let open Full_messages in + match msg with + | ValidMsg data -> ( last_received_sendingtime := data.full_msg_header.h_sending_time ) + | _ -> () +;; + + +let fix_thread session_dir inch mailbox = + let filename = Filename.(concat session_dir "fix.log") in + Message_stream.from_channel ~verbose:true inch + |> Lwt_stream.iter_s ( fun msg -> + let () = last_received_utctimestamp := (TimeDefaults_current_time.get_current_utctimestamp ()) in + let str = msg |> List.map (fun (k,v) -> k ^ "=" ^ v) + |> String.concat "|" + |> fun s -> s ^ "|\n" + in + Lwt_io.(open_file ~flags:log_flags ~mode:output filename) >>= fun fch -> + Lwt_io.write fch str >>= fun () -> + Lwt_io.close fch >>= fun () -> + let msg = Parse_full_messages.parse_top_level_msg msg in + let () = store_senging_time msg in + write_seqn session_dir "seqin" msg >>= fun () -> + do_timechange mailbox >>= fun () -> + Lwt_mvar.put mailbox (Fix_global_state.FIX_Message msg) + ) +;; + +let send_msg session_dir outch fmsg = + let filename = Filename.(concat session_dir "fix.log") in + match fmsg with + | Full_messages.ValidMsg msg -> begin + let wire = Encode_full_messages.encode_full_valid_msg msg in + let log = Caml.String.map (function '\001' -> '|' | c -> c) wire ^ "\n" in + Lwt_io.(open_file ~flags:log_flags ~mode:output filename) >>= fun fch -> + Lwt_io.write fch log >>= fun () -> + Lwt_io.close fch >>= fun () -> + Lwt_io.write outch wire >>= fun () -> + Lwt_io.flush outch >>= fun () -> + write_seqn session_dir "seqout" fmsg + end + | _ -> Lwt.return_unit +;; + +let create config (inch, outch) = + let hostid = match config.host_id with None -> "NoHostid" | Some host_id -> host_id in + let session_folder = Printf.sprintf "%s.%s.%s.session" config.comp_id config.target_id hostid in + let engine_state = make_engine_state session_folder config in + let initmsg = Fix_engine_state.(IncIntMsg_CreateSession { + dest_comp_id = engine_state.fe_target_comp_id; + reset_seq_num = config.reset_seq + } ) in + let mailbox, _global_state = + Fix_global_state.start + ~pub:config.pub_callback + engine_state + State.init_model_state + (send_msg session_folder outch) + in { + heartbeat = heartbeat_thread mailbox; + fix = fix_thread session_folder inch mailbox; + mailbox = mailbox; + initmsg = initmsg + } +;; +[@@@logic] \ No newline at end of file diff --git a/src-simulation-utils/fix_global_state.iml b/src-simulation-utils/fix_global_state.iml new file mode 100644 index 00000000..96d6ade4 --- /dev/null +++ b/src-simulation-utils/fix_global_state.iml @@ -0,0 +1,168 @@ +[@@@program] +[@@@require "lwt"] +[@@@require "lwt.unix"] +[@@@import "../src-protocol/full_messages.iml"] +[@@@import "../src/fix_engine_state.iml"] +[@@@import "../src-model/src-types/actions.iml"] +[@@@import "../src-model/src-types/model_messages.iml"] +[@@@import "../src-model/src-types/state.iml"] +[@@@import "../src-protocol-pp/full_messages_json.iml"] +[@@@import "../src/fix_engine.iml"] +[@@@import "../src-model/src-conversions/type_converter.iml"] +[@@@import "../src-model/src/venue.iml"] +[@@@import "../src-core-utils/message_utils.iml"] +let (>>=) = Lwt.(>>=) + + +type incoming_event = + | FIX_Message of Full_messages.full_top_level_msg + | Internal_Message of Fix_engine_state.fix_engine_int_inc_msg + | ModelAction of Actions.fix_action + | Terminate + +(** Global state contains a fix_engine state and model_state *) +type fix_global_state = { + incoming : incoming_event Lwt_mvar.t; + pub_callback : (bool -> Model_messages.model_msg -> unit Lwt.t) option; + engine_state : Fix_engine_state.fix_engine_state; + model_state : State.model_state; + fix_callback : Full_messages.full_top_level_msg -> unit Lwt.t +} + +let _pp_incoming = function + | FIX_Message ( ValidMsg m ) -> + "FIX_Message (ValidMsg): " + ^ "\n - " ^ Yojson.pretty_to_string (Full_messages_json.full_msg_to_json m.full_msg_data) + | FIX_Message ( SessionRejectedMsg m ) -> + "FIX_Message (SessionRejectedMsg): " + ^ "\n - " ^ Yojson.pretty_to_string (Full_messages_json.session_rejected_msg_to_json m) + | FIX_Message ( BusinessRejectedMsg m ) -> + "FIX_Message (BusinessRejectedMsg): " + ^ "\n - " ^ Yojson.pretty_to_string (Full_messages_json.biz_rejected_msg_to_json m) + | FIX_Message ( Garbled ) -> "FIX_Message (Garbled)" + | Internal_Message _ -> "Internal_Message" + | ModelAction _ -> "ModelAction" + | Terminate -> "Terminate" + + +(** Running Fix_engine.one_step while there are outgoing messages and + calling the fix_callback function for each *) +let rec send_all_outgoing_fix engine_state fix_callback = + let open Fix_engine_state in + match engine_state.outgoing_fix_msg with + | None -> Lwt.return engine_state + | Some msg -> begin + fix_callback msg >>= fun () -> + let engine_state = { engine_state with outgoing_fix_msg = None } in (* NOTE: I'm cleaning the out slot here *) + let engine_state = Fix_engine.one_step engine_state in + send_all_outgoing_fix engine_state fix_callback + end +;; + +(** Iterating over a list of model messages, pass each into fix_eigine and + send anything that fix_engine produces *) +let rec send_messages_list messages engine_state fix_callback ( pub_callback : (bool -> Model_messages.model_msg -> unit Lwt.t) option) = + let open Fix_engine_state in + match messages with + | [] -> Lwt.return engine_state + | hd::tl -> ( + let data = Type_converter.convert_model_to_full_fix hd in + let msg = IncIntMsg_ApplicationData data in + let engine_state = { engine_state with incoming_int_msg = Some msg } in + let engine_state = Fix_engine.one_step engine_state in + ( match pub_callback with None -> Lwt.return_unit | Some f -> f true hd ) >>= fun () -> + send_all_outgoing_fix engine_state fix_callback >>= fun engine_state -> + send_messages_list tl engine_state fix_callback pub_callback + ) +;; + + +let rec while_busy_loop state = + let engine_state = state.engine_state in + let engine_state = Fix_engine.one_step engine_state in + (* THEOREM : after one_step we can get either ontgoing internal + or outgoing FIX message *) + begin match ( engine_state.outgoing_fix_msg , engine_state.outgoing_int_msg) with + (* On outgoing FIX message we send it and clean outgoing slot.*) + | Some msg, None -> begin + state.fix_callback msg >>= fun () -> + let engine_state = { engine_state with outgoing_fix_msg = None } in + Lwt.return { state with engine_state = engine_state } + end + | None, Some _msg -> begin + let model_state = state.model_state in + ( match engine_state.outgoing_int_msg with + | Some ( OutIntMsg_ApplicationData data ) -> + let model_message = Type_converter.convert_full_to_model_fix data in + ( match (Message_utils.get_normal_message model_message) , state.pub_callback with + | Some m , Some f -> f false m + | _ -> Lwt.return_unit + ) >>= fun () -> + let model_state = { model_state with State.incoming_msg = model_message } in + Lwt.return @@ Venue.one_step model_state + | Some ( OutIntMsg_ResendApplicationData data ) -> + let model_message = Type_converter.convert_full_to_model_fix data in + let model_message = Message_utils.get_resend_message model_message in + let model_state = { model_state with State.incoming_msg = model_message } in + Lwt.return @@ Venue.one_step model_state + | _ -> Lwt.return model_state (* TODO -- see what to do with other messages *) + ) >>= fun model_state -> + let engine_state = { engine_state with outgoing_int_msg = None } in + send_messages_list + model_state.State.outgoing_msgs + engine_state + state.fix_callback + state.pub_callback >>= fun engine_state -> + Lwt.return { state with + engine_state = engine_state ; + model_state = { model_state with State.outgoing_msgs = [] } } + end + | None, None -> Lwt.return { state with engine_state = engine_state } + | _ -> Lwt.fail_with "Critical internal error in fix_engine model" + end >>= fun state -> + if Fix_engine_state.engine_state_busy state.engine_state then + while_busy_loop state + else Lwt.return state +;; + +let rec main_loop state = + let open Fix_engine_state in + Lwt_mvar.take state.incoming >>= fun incoming -> +(* Lwt_io.printf "Main_loop received incoming : %s\n" (pp_incoming incoming) >>= fun () -> *) + Lwt_io.flush_all () >>= fun () -> + match incoming with + | Terminate -> Lwt.return_unit + | Internal_Message msg -> + let state = { state with engine_state = { state.engine_state with incoming_int_msg = Some msg } } in + while_busy_loop state >>= fun state -> + main_loop state + | FIX_Message msg -> + let state = { state with engine_state = { state.engine_state with incoming_fix_msg = Some msg } } in + while_busy_loop state >>= fun state -> + main_loop state + | ModelAction act -> + let model_state = {state.model_state with State.incoming_action = Some act } in + let model_state = Venue.one_step model_state in + let engine_state = { state.engine_state with outgoing_int_msg = None } in + send_messages_list + model_state.State.outgoing_msgs + engine_state + state.fix_callback + state.pub_callback >>= fun engine_state -> + Lwt.return { state with + engine_state = engine_state ; + model_state = { model_state with State.outgoing_msgs = [] } } >>= fun state -> + main_loop state +;; + +let start ?pub:(pub_callback=None) init_engine init_model fix_callback = + let state = { + incoming = Lwt_mvar.create_empty (); + engine_state = init_engine; + model_state = init_model; + fix_callback = fix_callback; + pub_callback = pub_callback + } in + ( state.incoming , main_loop state ) +;; +[@@@logic] \ No newline at end of file diff --git a/src-simulation-utils/message_stream.iml b/src-simulation-utils/message_stream.iml new file mode 100644 index 00000000..1462bacd --- /dev/null +++ b/src-simulation-utils/message_stream.iml @@ -0,0 +1,53 @@ + +[@@@program] +[@@@require "lwt"] +[@@@require "lwt.unix"] +let (>>=) = Lwt.(>>=);; + +let split_into_key_value (spliton : char) ( stream : char Lwt_stream.t ) : (string * string) Lwt_stream.t = + (* Converts [ '5'; '2'; '='; 'A' ] to ("52" , "A" ) *) + let get_key_value (chlist : char list) : string * string = + List.fold_left (fun ((k,v),f) char -> match char with + | '=' -> ((k,v), true) + | c -> if f then (( k, v ^ String.make 1i c ), f) + else (( k ^ String.make 1i c, v ), f) + ) (("", ""), false) chlist + |> fst + in + let f () = + Lwt_stream.get_while (fun c -> c <> spliton) stream >>= fun chlist -> + Lwt_stream.junk stream >>= fun () -> + if chlist <> [] + then ( + let k,v = get_key_value chlist in + Lwt.return_some (k,v) + ) + else Lwt.return_none + in + Lwt_stream.from f +;; + +let split_into_messages (verbose:bool) (stream : (string * string) Lwt_stream.t) = + let f () = + Lwt_stream.get_while (fun (k,_v) -> k <> "10") stream >>= fun msg -> + Lwt_stream.get stream >>= function None -> Lwt.return_none | Some chsum -> + if msg <> [] + then ( + let msg = (msg @ [chsum]) in + let str = msg + |> List.map (fun (k,v) -> k ^ "=" ^ v) + |> String.concat "|" in + (if verbose then Lwt_io.printl ("Receive: " ^ str ) else Lwt.return_unit) >>= fun () -> + Lwt.return_some msg + ) + else Lwt.return_none + in + Lwt_stream.from f +;; + +let from_channel ?(verbose=false) ?(spliton='\001') inch = + Lwt_io.read_chars inch + |> split_into_key_value spliton + |> split_into_messages verbose +;; +[@@@logic] diff --git a/src-simulation-utils/server_utils.iml b/src-simulation-utils/server_utils.iml new file mode 100644 index 00000000..f267e683 --- /dev/null +++ b/src-simulation-utils/server_utils.iml @@ -0,0 +1,79 @@ +(** FIX 4.4 engine server implementation. *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2018 + + server_utils.iml + +*) +[@@@program] +[@@@require "lwt"] +[@@@require "lwt.unix"] +[@@@import "../src-core-time-defaults-pp/timeDefaults_current_time.iml"] +[@@@import "../src/fix_engine_state.iml"] +[@@@import "../src-protocol/full_messages.iml"] +[@@@import "../src-protocol-pp/encode_full_messages.iml"] +[@@@import "../src-protocol-pp/parse_full_messages.iml"] +[@@@import "fix_global_state.iml"] +[@@@import "message_stream.iml"] +let (>>=) = Lwt.(>>=);; + +let engine_state = + let open Fix_engine_state in + { init_fix_engine_state with + fe_comp_id = "IMANDRA"; + fe_target_comp_id = "BANZAI"; + fe_curr_time = TimeDefaults_current_time.get_current_utctimestamp (); + fe_max_num_logons_sent = 10; + fe_application_up = true } +;; + + +let send_msg outch msg = + match msg with + | Full_messages.ValidMsg msg -> begin + let wire = Encode_full_messages.encode_full_valid_msg msg in + Lwt_io.print ("Sending (" ^ wire ^ ") " ) >>= fun () -> + Lwt_io.flush_all () >>= fun () -> + Lwt_io.write outch wire >>= fun () -> + Lwt_io.flush outch >>= fun () -> + Lwt_io.printl " done." + end + | _ -> Lwt.return_unit +;; + +let do_timechange mailbox = + let time = TimeDefaults_current_time.get_current_utctimestamp () in + let timechange = Fix_engine_state.IncIntMsg_TimeChange time in + let timechange = Fix_global_state.Internal_Message timechange in + Lwt_mvar.put mailbox timechange +;; + +let rec heartbeat_thread mailbox = + Lwt_unix.sleep (Q.to_float 1.0) >>= fun () -> + do_timechange mailbox >>= fun () -> + heartbeat_thread mailbox +;; + +let f _ (inch, outch) = + let close_channels () = + Lwt_io.printl "Connection closed, shutting down." >>= fun () -> + Lwt_io.close inch >>= fun () -> + Lwt_io.close outch + in + let mailbox, _global_state = Fix_global_state.start engine_state State.init_model_state (send_msg outch) in + Lwt.catch ( fun () -> + Lwt_io.printl "Received a connection." >>= fun () -> + Lwt.join [ + heartbeat_thread mailbox; + Message_stream.from_channel ~verbose:true inch + |> Lwt_stream.map Parse_full_messages.parse_top_level_msg + |> Lwt_stream.iter_s ( fun msg -> + do_timechange mailbox >>= fun () -> + Lwt_mvar.put mailbox (Fix_global_state.FIX_Message msg) + ) + ] + ) ( fun _ -> close_channels () ) +;; +[@@@logic] From 16f30fa092875d76e098d6945cd845438782b693 Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Thu, 3 Oct 2019 15:28:29 +0100 Subject: [PATCH 13/19] wip: format all updated all vgs need to be reproven --- Makefile | 2 +- src-core-pp/base_types_json.iml | 8 +-- src-core-pp/datetime_json.iml | 8 +-- src-core-pp/encode_base_types.iml | 6 +-- src-core-pp/encode_datetime.iml | 8 +-- src-core-pp/parse_base_types.iml | 6 +-- src-core-pp/parse_datetime.iml | 4 +- src-core-printer/core_printer.iml | 10 ++-- src-core-time-defaults-pp/dune | 32 ++++++------ .../timeDefaults_current_time.iml | 9 ---- .../timeDefaults_json.iml | 13 ----- .../timeDefaults_parser.iml | 9 ---- src-core-time-defaults-pp/timeDefaults_pp.iml | 9 ---- src-core-time-defaults/dune | 8 +-- src-core-time-defaults/timeDefaults.iml | 50 ------------------- src-core-utils-vg/fix_version.iml | 9 +++- src-core-utils-vg/message_utils.iml | 9 +++- src-core-utils/fix_version.iml | 9 +++- src-core-utils/message_utils.iml | 10 +++- src-core/datetime.iml | 4 +- src-core/imandra_utils.iml | 4 +- src-core/numeric.iml | 4 +- src-model/install.sh | 10 ---- src-model/src-conversions/enum_converter.iml | 12 ++++- .../repeating_groups_converter.iml | 12 ++++- src-model/src-conversions/type_converter.iml | 18 +++++-- .../src-string-factory/model_enum_names.iml | 12 ++++- .../src-string-factory/model_tag_names.iml | 12 ++++- src-model/src-string-factory/string_assoc.iml | 12 ++++- .../string_assoc_common.iml | 10 +++- .../src-string-factory/string_checks.iml | 14 ++++-- src-model/src-types-pp/json_to_action.iml | 17 +++++-- src-model/src-types-pp/json_to_enum.iml | 16 ++++-- src-model/src-types-pp/json_to_internal.iml | 9 +++- src-model/src-types-pp/json_to_message.iml | 21 +++++--- .../src-types-pp/json_to_model_state.iml | 17 +++++-- src-model/src-types-pp/json_to_model_tag.iml | 17 +++++-- src-model/src-types-pp/json_to_records.iml | 8 ++- .../src-types-pp/json_to_repeating_group.iml | 2 - src-model/src-types-pp/model_actions_json.iml | 17 +++++-- src-model/src-types-pp/model_enums_json.iml | 11 +++- .../src-types-pp/model_internals_json.iml | 9 +++- .../src-types-pp/model_messages_json.iml | 21 +++++--- src-model/src-types-pp/model_records_json.iml | 8 ++- .../model_repeating_groups_json.iml | 8 ++- src-model/src-types-pp/model_state_json.iml | 15 ++++-- src-model/src-types-pp/model_tags_json.iml | 13 +++-- src-model/src-types/actions.iml | 12 ++++- src-model/src-types/model_messages.iml | 16 ++++-- src-model/src-types/model_records.iml | 9 +++- .../src-types/model_repeating_groups.iml | 9 +++- src-model/src-types/model_tags.iml | 10 +++- src-model/src-types/state.iml | 12 ++++- src-model/src/act_checks.iml | 12 ++++- src-model/src/act_process.iml | 14 ++++-- src-model/src/dune | 8 +-- src-model/src/msg_check_fields.iml | 14 ++++-- src-model/src/msg_check_types.iml | 9 +++- src-model/src/msg_check_validate.iml | 14 ++++-- src-model/src/msg_defaults.iml | 10 +++- src-model/src/msg_process.iml | 24 ++++++--- src-model/src/msg_receive.iml | 16 ++++-- src-model/src/msg_reject.iml | 18 +++++-- .../src/repeatingGroupConsistencyChecks.iml | 2 - src-model/src/venue.iml | 16 ++++-- .../full_app_enums_json.iml | 4 +- .../full_app_messages_json.iml | 14 +++--- .../full_app_records_json.iml | 10 ++-- .../full_app_tags_json.iml | 4 +- src-protocol-exts-pp-vg/parse_app_enums.iml | 4 +- .../parse_app_messages.iml | 18 +++---- src-protocol-exts-pp-vg/parse_app_records.iml | 12 ++--- src-protocol-exts-pp-vg/parse_app_tags.iml | 4 +- .../protocol_exts_pp.mllib | 8 --- src-protocol-exts-pp/encode_app_enums.iml | 6 +-- src-protocol-exts-pp/encode_app_messages.iml | 14 +++--- src-protocol-exts-pp/encode_app_records.iml | 12 ++--- src-protocol-exts-pp/encode_app_tags.iml | 4 +- src-protocol-exts-pp/encode_utils.iml | 6 +-- src-protocol-exts-pp/full_app_enums_json.iml | 4 +- .../full_app_messages_json.iml | 14 +++--- .../full_app_records_json.iml | 12 ++--- src-protocol-exts-pp/full_app_tags_json.iml | 4 +- src-protocol-exts-pp/json_generator_utils.iml | 2 +- src-protocol-exts-pp/parse_app_enums.iml | 6 +-- src-protocol-exts-pp/parse_app_messages.iml | 16 +++--- src-protocol-exts-pp/parse_app_records.iml | 12 ++--- src-protocol-exts-pp/parse_app_tags.iml | 4 +- src-protocol-exts-vg/full_app_enums.iml | 2 +- src-protocol-exts-vg/full_app_messages.iml | 12 ++--- src-protocol-exts-vg/full_app_records.iml | 4 +- src-protocol-exts-vg/full_app_tags.iml | 2 +- src-protocol-exts-vg/protocol_exts.mllib | 4 -- src-protocol-exts/full_app_enums.iml | 2 +- src-protocol-exts/full_app_messages.iml | 10 ++-- src-protocol-exts/full_app_records.iml | 6 +-- src-protocol-exts/full_app_tags.iml | 2 +- src-protocol-pp/encode_admin_enums.iml | 4 +- src-protocol-pp/encode_admin_messages.iml | 14 +++--- src-protocol-pp/encode_admin_tags.iml | 4 +- src-protocol-pp/encode_full_messages.iml | 16 +++--- src-protocol-pp/encode_full_tags.iml | 8 +-- src-protocol-pp/fix_engine_json.iml | 16 +++--- src-protocol-pp/full_admin_enums_json.iml | 4 +- src-protocol-pp/full_admin_messages_json.iml | 12 ++--- src-protocol-pp/full_admin_tags_json.iml | 4 +- src-protocol-pp/full_message_tags_json.iml | 8 +-- src-protocol-pp/full_messages_json.iml | 18 +++---- src-protocol-pp/parse_admin_enums.iml | 4 +- src-protocol-pp/parse_admin_messages.iml | 18 +++---- src-protocol-pp/parse_admin_tags.iml | 4 +- src-protocol-pp/parse_full_messages.iml | 18 +++---- src-protocol-pp/parse_full_tags.iml | 6 +-- src-protocol-pp/pp_main.iml | 30 ----------- src-protocol/full_admin_enums.iml | 3 +- src-protocol/full_admin_messages.iml | 8 +-- src-protocol/full_admin_tags.iml | 3 +- src-protocol/full_message_tags.iml | 5 +- src-protocol/full_messages.iml | 12 ++--- src-simulation-utils/client_utils.iml | 21 ++++---- src-simulation-utils/fix_connection.iml | 16 +++--- src-simulation-utils/fix_global_state.iml | 2 +- src-simulation-utils/message_stream.iml | 3 +- src-simulation-utils/server_utils.iml | 6 +-- src-tests-utils/config_parser.iml | 2 +- src-tests-utils/test_cache_utils.iml | 17 ++++--- src-tests-utils/test_runner_utils.iml | 20 ++++---- src/fix_engine.iml | 14 +++--- src/fix_engine_state.iml | 14 +++--- src/fix_engine_transitions.iml | 18 +++---- src/fix_engine_utils.iml | 24 ++++----- vgs/base_vgs.iml | 12 ++--- vgs/datetime_vgs.iml | 4 +- vgs/example_min_vg.iml | 3 +- vgs/heartbeat_vgs.iml | 16 +++--- vgs/logon_vgs.iml | 12 ++--- vgs/logout_vgs.iml | 2 +- vgs/reject_vgs.iml | 10 ++-- vgs/seq_num_vgs.iml | 10 ++-- vgs/seqreset_reset_vgs.iml | 10 ++-- 140 files changed, 819 insertions(+), 651 deletions(-) delete mode 100644 src-core-time-defaults-pp/timeDefaults_current_time.iml delete mode 100644 src-core-time-defaults-pp/timeDefaults_json.iml delete mode 100644 src-core-time-defaults-pp/timeDefaults_parser.iml delete mode 100644 src-core-time-defaults-pp/timeDefaults_pp.iml delete mode 100644 src-core-time-defaults/timeDefaults.iml delete mode 100755 src-model/install.sh delete mode 100644 src-model/src/repeatingGroupConsistencyChecks.iml delete mode 100644 src-protocol-exts-pp-vg/protocol_exts_pp.mllib delete mode 100644 src-protocol-exts-vg/protocol_exts.mllib delete mode 100644 src-protocol-pp/pp_main.iml diff --git a/Makefile b/Makefile index 701a7496..d718b092 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ build: rm dune build_vgs: - @echo "(ignored_subdirs (src-protocol-exts src-protocol-exts-pp src-model src-simulation src-simulation-utils src-core-utils))" > dune + @echo "(ignored_subdirs (src-protocol-exts src-protocol-exts-pp src-model src-simulation src-simulation-utils src-core-utils src-tests-utils))" > dune dune build @install rm dune diff --git a/src-core-pp/base_types_json.iml b/src-core-pp/base_types_json.iml index fae2f535..92149a75 100644 --- a/src-core-pp/base_types_json.iml +++ b/src-core-pp/base_types_json.iml @@ -2,15 +2,15 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 - base_types_json.ml + base_types_json.iml *) +[@@@require "decoders-yojson"] +[@@@import "../src-core/numeric.iml"] [@@@program] open Yojson;; -[@@@import "../src-core/numeric.iml"] open Numeric;; -[@@@require "decoders-yojson"] module JU = Yojson.Basic.Util;; module D = Decoders_yojson.Basic.Decode;; open D.Infix;; diff --git a/src-core-pp/datetime_json.iml b/src-core-pp/datetime_json.iml index 3b98a319..0cc07ef4 100644 --- a/src-core-pp/datetime_json.iml +++ b/src-core-pp/datetime_json.iml @@ -2,15 +2,15 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 - datetime_json.ml + datetime_json.iml *) +[@@@import "../src-core/datetime.iml"] +[@@@import "base_types_json.iml"] [@@@program] open Yojson;; -[@@@import "../src-core/datetime.iml"] open Datetime;; -[@@@import "base_types_json.iml"] open Base_types_json;; module JU = Yojson.Basic.Util;; module D = Decoders_yojson.Basic.Decode;; diff --git a/src-core-pp/encode_base_types.iml b/src-core-pp/encode_base_types.iml index b29efb7e..26f7740b 100644 --- a/src-core-pp/encode_base_types.iml +++ b/src-core-pp/encode_base_types.iml @@ -2,12 +2,12 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 - base_types_json.ml + base_types_json.iml *) -[@@@program] [@@@import "../src-core/numeric.iml"] +[@@@program] open Numeric;; diff --git a/src-core-pp/encode_datetime.iml b/src-core-pp/encode_datetime.iml index 5b2580a3..f2bbb5a3 100644 --- a/src-core-pp/encode_datetime.iml +++ b/src-core-pp/encode_datetime.iml @@ -2,15 +2,15 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 - parse_datetime.ml + parse_datetime.iml *) -[@@@program] [@@@import "../src-core/datetime.iml"] -open Datetime;; [@@@import "encode_base_types.iml"] +[@@@program] +open Datetime;; open Encode_base_types;; diff --git a/src-core-pp/parse_base_types.iml b/src-core-pp/parse_base_types.iml index ab2e7982..1e4442c7 100644 --- a/src-core-pp/parse_base_types.iml +++ b/src-core-pp/parse_base_types.iml @@ -2,12 +2,12 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 - datetime_json.ml + datetime_json.iml *) -[@@@program] [@@@import "../src-core/numeric.iml"] +[@@@program] open Numeric;; let parse_string (str : string) : string option = diff --git a/src-core-pp/parse_datetime.iml b/src-core-pp/parse_datetime.iml index 2c8e4e56..73ffadaa 100644 --- a/src-core-pp/parse_datetime.iml +++ b/src-core-pp/parse_datetime.iml @@ -2,13 +2,13 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 201 parse_datetime.ml *) -[@@@program] [@@@import "../src-core/datetime.iml"] +[@@@program] open Datetime;; diff --git a/src-core-printer/core_printer.iml b/src-core-printer/core_printer.iml index 5c7eea2b..50c8a400 100644 --- a/src-core-printer/core_printer.iml +++ b/src-core-printer/core_printer.iml @@ -2,18 +2,18 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 core_printer.ml *) -[@@@program] [@@@import "../src-core-pp/encode_base_types.iml"] -open Encode_base_types;; [@@@import "../src-core-pp/encode_datetime.iml"] +[@@@import "../src-core-time-defaults-pp/time_defaults_pp.iml"] +[@@@program] +open Encode_base_types;; open Encode_datetime;; -[@@@import "../src-core-time-defaults-pp/timeDefaults_pp.iml"] -open TimeDefaults_pp;; +open Time_defaults_pp;; let fix_float_0_to_string x = encode_float_0 x diff --git a/src-core-time-defaults-pp/dune b/src-core-time-defaults-pp/dune index 87cec439..e25b30a5 100644 --- a/src-core-time-defaults-pp/dune +++ b/src-core-time-defaults-pp/dune @@ -1,30 +1,30 @@ (rule - (targets timeDefaults_parser.ml) - (deps timeDefaults_parser.iml) + (targets time_defaults_parser.ml) + (deps time_defaults_parser.iml) (action - (with-stdout-to timeDefaults_parser.ml - (run imandra-extract timeDefaults_parser.iml)))) + (with-stdout-to time_defaults_parser.ml + (run imandra-extract time_defaults_parser.iml)))) (rule - (targets timeDefaults_pp.ml) - (deps timeDefaults_pp.iml) + (targets time_defaults_pp.ml) + (deps time_defaults_pp.iml) (action - (with-stdout-to timeDefaults_pp.ml - (run imandra-extract timeDefaults_pp.iml)))) + (with-stdout-to time_defaults_pp.ml + (run imandra-extract time_defaults_pp.iml)))) (rule - (targets timeDefaults_current_time.ml) - (deps timeDefaults_current_time.iml) + (targets time_defaults_current_time.ml) + (deps time_defaults_current_time.iml) (action - (with-stdout-to timeDefaults_current_time.ml - (run imandra-extract timeDefaults_current_time.iml)))) + (with-stdout-to time_defaults_current_time.ml + (run imandra-extract time_defaults_current_time.iml)))) (rule - (targets timeDefaults_json.ml) - (deps timeDefaults_json.iml) + (targets time_defaults_json.ml) + (deps time_defaults_json.iml) (action - (with-stdout-to timeDefaults_json.ml - (run imandra-extract timeDefaults_json.iml)))) + (with-stdout-to time_defaults_json.ml + (run imandra-extract time_defaults_json.iml)))) (library (name core_time_defaults_pp) diff --git a/src-core-time-defaults-pp/timeDefaults_current_time.iml b/src-core-time-defaults-pp/timeDefaults_current_time.iml deleted file mode 100644 index 6b998f32..00000000 --- a/src-core-time-defaults-pp/timeDefaults_current_time.iml +++ /dev/null @@ -1,9 +0,0 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] -[@@@import "../src-core-utils-pp/current_time.iml"] -open Current_time;; - -let get_current_utctimestamp = get_current_utctimestamp_milli;; - -let get_current_utctimeonly = get_current_utctimeonly_milli;; -[@@@logic] \ No newline at end of file diff --git a/src-core-time-defaults-pp/timeDefaults_json.iml b/src-core-time-defaults-pp/timeDefaults_json.iml deleted file mode 100644 index e1491c81..00000000 --- a/src-core-time-defaults-pp/timeDefaults_json.iml +++ /dev/null @@ -1,13 +0,0 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] -[@@@import "../src-core-pp/datetime_json.iml"] -open Datetime_json;; - -let utctimestamp_to_json = utctimestamp_milli_to_json;; - -let utctimestamp_opt_to_json = utctimestamp_milli_opt_to_json;; - -let utctimeonly_to_json = utctimeonly_milli_to_json;; - -let utctimeonly_opt_to_json = utctimeonly_milli_opt_to_json;; -[@@@logic] \ No newline at end of file diff --git a/src-core-time-defaults-pp/timeDefaults_parser.iml b/src-core-time-defaults-pp/timeDefaults_parser.iml deleted file mode 100644 index b93258bf..00000000 --- a/src-core-time-defaults-pp/timeDefaults_parser.iml +++ /dev/null @@ -1,9 +0,0 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] -[@@@import "../src-core-pp/parse_datetime.iml"] -open Parse_datetime;; - -let parse_UTCTimestamp = parse_UTCTimestamp_milli;; - -let parse_UTCTimeOnly = parse_UTCTimeOnly_milli;; -[@@@logic] \ No newline at end of file diff --git a/src-core-time-defaults-pp/timeDefaults_pp.iml b/src-core-time-defaults-pp/timeDefaults_pp.iml deleted file mode 100644 index f34f159f..00000000 --- a/src-core-time-defaults-pp/timeDefaults_pp.iml +++ /dev/null @@ -1,9 +0,0 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] -[@@@import "../src-core-pp/encode_datetime.iml"] -open Encode_datetime;; - -let encode_UTCTimestamp = encode_UTCTimestamp_milli;; - -let encode_UTCTimeOnly = encode_UTCTimeOnly_milli;; -[@@@logic] \ No newline at end of file diff --git a/src-core-time-defaults/dune b/src-core-time-defaults/dune index f2cf17ab..56c8d4d8 100644 --- a/src-core-time-defaults/dune +++ b/src-core-time-defaults/dune @@ -1,9 +1,9 @@ (rule - (targets timeDefaults.ml) - (deps timeDefaults.iml) + (targets time_defaults.ml) + (deps time_defaults.iml) (action - (with-stdout-to timeDefaults.ml - (run imandra-extract timeDefaults.iml)))) + (with-stdout-to time_defaults.ml + (run imandra-extract time_defaults.iml)))) (library (name core_time_defaults) diff --git a/src-core-time-defaults/timeDefaults.iml b/src-core-time-defaults/timeDefaults.iml deleted file mode 100644 index 76a4b438..00000000 --- a/src-core-time-defaults/timeDefaults.iml +++ /dev/null @@ -1,50 +0,0 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@import "../src-core/datetime.iml"] -open Datetime;; - -type milli_micro = - | Milli - | Micro -;; - -let default_time_precision = Milli;; - -type fix_utctimestamp = fix_utctimestamp_milli -;; - -let make_utctimestamp = make_utctimestamp_milli;; - -let is_valid_utctimestamp = is_valid_utctimestamp_milli;; - -let utctimestamp_Equal = utctimestamp_Equal_milli_milli;; - -let utctimestamp_GreaterThan = utctimestamp_GreaterThan_milli_milli;; - -let utctimestamp_GreaterThanEqual = utctimestamp_GreaterThanEqual_milli_milli;; - -let utctimestamp_LessThan = utctimestamp_LessThan_milli_milli;; - -let utctimestamp_LessThanEqual = utctimestamp_LessThanEqual_milli_milli;; - -let normalise_utctimestamp = normalise_utctimestamp_milli;; - -type fix_utctimeonly = fix_utctimeonly_milli -;; - -let make_utctimeonly = make_utctimeonly_milli;; - -let is_valid_utctimeonly = is_valid_utctimeonly_milli;; - -let utctimeonly_Equal = utctimeonly_Equal_milli_milli;; - -let utctimeonly_GreaterThan = utctimeonly_GreaterThan_milli_milli;; - -let utctimeonly_GreaterThanEqual = utctimeonly_GreaterThanEqual_milli_milli;; - -let utctimeonly_LessThan = utctimeonly_LessThan_milli_milli;; - -let utctimeonly_LessThanEqual = utctimeonly_LessThanEqual_milli_milli;; - -let normalise_utctimeonly = normalise_utctimeonly_milli;; - -let utctimestamp_duration_Add = utctimestamp_milli_duration_Add;; diff --git a/src-core-utils-vg/fix_version.iml b/src-core-utils-vg/fix_version.iml index 439dd189..2764c8c5 100644 --- a/src-core-utils-vg/fix_version.iml +++ b/src-core-utils-vg/fix_version.iml @@ -1,5 +1,12 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + fix_utils.iml + +*) type session_details = { constant_begin_string : string } diff --git a/src-core-utils-vg/message_utils.iml b/src-core-utils-vg/message_utils.iml index 399fadb9..05372719 100644 --- a/src-core-utils-vg/message_utils.iml +++ b/src-core-utils-vg/message_utils.iml @@ -1,5 +1,12 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + message_utils.iml + +*) let get_resend_message (msg) = msg ;; diff --git a/src-core-utils/fix_version.iml b/src-core-utils/fix_version.iml index 439dd189..b18f63f5 100644 --- a/src-core-utils/fix_version.iml +++ b/src-core-utils/fix_version.iml @@ -1,5 +1,12 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + fix_version.iml + +*) type session_details = { constant_begin_string : string } diff --git a/src-core-utils/message_utils.iml b/src-core-utils/message_utils.iml index 76c54015..89631a04 100644 --- a/src-core-utils/message_utils.iml +++ b/src-core-utils/message_utils.iml @@ -1,4 +1,12 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + message_utils.iml + +*) [@@@import "../src-model/src-types/model_messages.iml"] open Model_messages;; diff --git a/src-core/datetime.iml b/src-core/datetime.iml index f24c0358..4a2909ec 100644 --- a/src-core/datetime.iml +++ b/src-core/datetime.iml @@ -2,9 +2,9 @@ (** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 - datetime.ml + datetime.iml *) (** Helper function that determines wether the year is a leap year *) diff --git a/src-core/imandra_utils.iml b/src-core/imandra_utils.iml index eb736e2c..3f1a1079 100644 --- a/src-core/imandra_utils.iml +++ b/src-core/imandra_utils.iml @@ -2,9 +2,9 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 - imandra_utils.ml + imandra_utils.iml *) diff --git a/src-core/numeric.iml b/src-core/numeric.iml index e26dc1ed..d1609f3d 100644 --- a/src-core/numeric.iml +++ b/src-core/numeric.iml @@ -1,8 +1,8 @@ (** Numeric types and operations. *) (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 - numeric.ml + Copyright (c) 2014 - 2019 + numeric.iml *) type fix_float_0 = diff --git a/src-model/install.sh b/src-model/install.sh deleted file mode 100755 index 1beec470..00000000 --- a/src-model/install.sh +++ /dev/null @@ -1,10 +0,0 @@ -rm -rf ../src-protocol-exts* -rm -rf src* -mv ./fix-venue-model/src-protocol-exts* .. -mv ./fix-venue-model/src* . -rm -rf fix-venue-model/ - - - -git checkout -- src-types-pp/json_to_action.ml - diff --git a/src-model/src-conversions/enum_converter.iml b/src-model/src-conversions/enum_converter.iml index d4059af0..24623b88 100644 --- a/src-model/src-conversions/enum_converter.iml +++ b/src-model/src-conversions/enum_converter.iml @@ -1,7 +1,15 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + enum_converter.iml + +*) [@@@import "../../src-protocol-exts/full_app_enums.iml"] -open Full_app_enums;; [@@@import "../src-types/model_app_enums.iml"] +open Full_app_enums;; open Model_app_enums;; let convert__full_to_model_Side (f : fix_side) = diff --git a/src-model/src-conversions/repeating_groups_converter.iml b/src-model/src-conversions/repeating_groups_converter.iml index 56db569c..be766e8f 100644 --- a/src-model/src-conversions/repeating_groups_converter.iml +++ b/src-model/src-conversions/repeating_groups_converter.iml @@ -1,7 +1,15 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + repeating_groups_converter.iml + +*) [@@@import "../../src-core/imandra_utils.iml"] -open Imandra_utils;; [@@@import "../src-types/model_tags.iml"] +open Imandra_utils;; open Model_tags;; exception Ipl_rg_exception diff --git a/src-model/src-conversions/type_converter.iml b/src-model/src-conversions/type_converter.iml index 7f3da5f8..1c252529 100644 --- a/src-model/src-conversions/type_converter.iml +++ b/src-model/src-conversions/type_converter.iml @@ -1,13 +1,21 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + type_converter.iml + +*) [@@@import "enum_converter.iml"] -open Enum_converter;; [@@@import "../../src-protocol-exts/full_app_messages.iml"] -open Full_app_messages;; [@@@import "../../src-protocol-exts/full_app_records.iml"] -open Full_app_records;; [@@@import "../src-types/model_messages.iml"] -open Model_messages;; [@@@import "../src-types/model_tags.iml"] +open Enum_converter;; +open Full_app_messages;; +open Full_app_records;; +open Model_messages;; open Model_tags;; let convert__full_to_model_ExecutionReport (msg : full_fix_executionreport_data) = diff --git a/src-model/src-string-factory/model_enum_names.iml b/src-model/src-string-factory/model_enum_names.iml index dc0b12d0..6103d399 100644 --- a/src-model/src-string-factory/model_enum_names.iml +++ b/src-model/src-string-factory/model_enum_names.iml @@ -1,6 +1,14 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + model_enum_names.iml + +*) [@@@import "../src-types/model_app_enums.iml"] +[@@@program] open Model_app_enums;; let mod_side_to_string (d) = diff --git a/src-model/src-string-factory/model_tag_names.iml b/src-model/src-string-factory/model_tag_names.iml index 94979627..330c4f9d 100644 --- a/src-model/src-string-factory/model_tag_names.iml +++ b/src-model/src-string-factory/model_tag_names.iml @@ -1,6 +1,14 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + model_tag_names.iml + +*) [@@@import "../src-types/model_tags.iml"] +[@@@program] open Model_tags;; let tag_to_message (x) = diff --git a/src-model/src-string-factory/string_assoc.iml b/src-model/src-string-factory/string_assoc.iml index 21bc3b9b..be8b9b15 100644 --- a/src-model/src-string-factory/string_assoc.iml +++ b/src-model/src-string-factory/string_assoc.iml @@ -1,6 +1,14 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + string_assoc.iml + +*) [@@@import "string_assoc_common.iml"] +[@@@program] open String_assoc_common;; module StringAssoc = struct diff --git a/src-model/src-string-factory/string_assoc_common.iml b/src-model/src-string-factory/string_assoc_common.iml index 7873e994..25335d87 100644 --- a/src-model/src-string-factory/string_assoc_common.iml +++ b/src-model/src-string-factory/string_assoc_common.iml @@ -1,4 +1,12 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + string_assoc_common.iml + +*) [@@@program] let string_pairs = ("Actions.m_action_fix_x","x") :: (("Model_messages.mod_executionreport_data","ExecutionReport") :: (("Model_messages.mod_newordersingle_data","NewOrderSingle") :: (("Actions.mod_f_x_x","x") :: (("Model_messages.mod_f_ExecutionReport_ClOrdID","ClOrdID") :: (("Model_messages.mod_f_ExecutionReport_OrderID","OrderID") :: (("Model_messages.mod_f_ExecutionReport_ExecID","ExecID") :: (("Model_messages.mod_f_ExecutionReport_ExecType","ExecType") :: (("Model_messages.mod_f_ExecutionReport_AvgPx","AvgPx") :: (("Model_messages.mod_f_ExecutionReport_Side","Side") :: (("Model_messages.mod_f_ExecutionReport_LeavesQty","LeavesQty") :: (("Model_messages.mod_f_ExecutionReport_CumQty","CumQty") :: (("Model_messages.mod_f_ExecutionReport_OrdStatus","OrdStatus") :: (("Model_messages.mod_f_ExecutionReport_Instrument_Symbol","Instrument.Symbol") :: (("Model_messages.mod_f_ExecutionReport_Text","Text") :: (("Model_messages.mod_f_NewOrderSingle_ClOrdID","ClOrdID") :: (("Model_messages.mod_f_NewOrderSingle_Side","Side") :: (("Model_messages.mod_f_NewOrderSingle_TransactTime","TransactTime") :: (("Model_messages.mod_f_NewOrderSingle_OrdType","OrdType") :: (("Model_messages.mod_f_NewOrderSingle_Instrument_Symbol","Instrument.Symbol") :: (("Model_app_enums.model_fix_side","Side") :: (("Model_app_enums.model_fix_ordtype","OrdType") :: (("Model_app_enums.model_fix_ordstatus","OrdStatus") :: (("Model_app_enums.model_fix_exectype","ExecType") :: (("Model_app_enums.MOD_FIX_Side_Buy","Side.Buy") :: (("Model_app_enums.MOD_FIX_Side_Sell","Side.Sell") :: (("Model_app_enums.MOD_FIX_Side_BuyMinus","Side.BuyMinus") :: (("Model_app_enums.MOD_FIX_Side_SellPlus","Side.SellPlus") :: (("Model_app_enums.MOD_FIX_Side_SellShort","Side.SellShort") :: (("Model_app_enums.MOD_FIX_Side_SellShortExempt","Side.SellShortExempt") :: (("Model_app_enums.MOD_FIX_Side_Undisclosed","Side.Undisclosed") :: (("Model_app_enums.MOD_FIX_Side_Cross","Side.Cross") :: (("Model_app_enums.MOD_FIX_Side_CrossShort","Side.CrossShort") :: (("Model_app_enums.MOD_FIX_Side_CrossShortExempt","Side.CrossShortExempt") :: (("Model_app_enums.MOD_FIX_Side_AsDefined","Side.AsDefined") :: (("Model_app_enums.MOD_FIX_Side_Opposite","Side.Opposite") :: (("Model_app_enums.MOD_FIX_Side_Subscribe","Side.Subscribe") :: (("Model_app_enums.MOD_FIX_Side_Redeem","Side.Redeem") :: (("Model_app_enums.MOD_FIX_Side_Lend","Side.Lend") :: (("Model_app_enums.MOD_FIX_Side_Borrow","Side.Borrow") :: (("Model_app_enums.MOD_FIX_OrdType_Market","OrdType.Market") :: (("Model_app_enums.MOD_FIX_OrdType_Limit","OrdType.Limit") :: (("Model_app_enums.MOD_FIX_OrdType_Stop","OrdType.Stop") :: (("Model_app_enums.MOD_FIX_OrdType_StopLimit","OrdType.StopLimit") :: (("Model_app_enums.MOD_FIX_OrdType_WithOrWithout","OrdType.WithOrWithout") :: (("Model_app_enums.MOD_FIX_OrdType_LimitOrBetter","OrdType.LimitOrBetter") :: (("Model_app_enums.MOD_FIX_OrdType_LimitWithOrWithout","OrdType.LimitWithOrWithout") :: (("Model_app_enums.MOD_FIX_OrdType_OnBasis","OrdType.OnBasis") :: (("Model_app_enums.MOD_FIX_OrdType_PreviouslyQuoted","OrdType.PreviouslyQuoted") :: (("Model_app_enums.MOD_FIX_OrdType_PreviouslyIndicated","OrdType.PreviouslyIndicated") :: (("Model_app_enums.MOD_FIX_OrdType_ForexSwap","OrdType.ForexSwap") :: (("Model_app_enums.MOD_FIX_OrdType_Funari","OrdType.Funari") :: (("Model_app_enums.MOD_FIX_OrdType_MarketIfTouched","OrdType.MarketIfTouched") :: (("Model_app_enums.MOD_FIX_OrdType_MarketWithLeftOverAsLimit","OrdType.MarketWithLeftOverAsLimit") :: (("Model_app_enums.MOD_FIX_OrdType_PreviousFundValuationPoint","OrdType.PreviousFundValuationPoint") :: (("Model_app_enums.MOD_FIX_OrdType_NextFundValuationPoint","OrdType.NextFundValuationPoint") :: (("Model_app_enums.MOD_FIX_OrdType_Pegged","OrdType.Pegged") :: (("Model_app_enums.MOD_FIX_OrdStatus_New","OrdStatus.New") :: (("Model_app_enums.MOD_FIX_OrdStatus_PartiallyFilled","OrdStatus.PartiallyFilled") :: (("Model_app_enums.MOD_FIX_OrdStatus_Filled","OrdStatus.Filled") :: (("Model_app_enums.MOD_FIX_OrdStatus_DoneForDay","OrdStatus.DoneForDay") :: (("Model_app_enums.MOD_FIX_OrdStatus_Canceled","OrdStatus.Canceled") :: (("Model_app_enums.MOD_FIX_OrdStatus_PendingCancel","OrdStatus.PendingCancel") :: (("Model_app_enums.MOD_FIX_OrdStatus_Stopped","OrdStatus.Stopped") :: (("Model_app_enums.MOD_FIX_OrdStatus_Rejected","OrdStatus.Rejected") :: (("Model_app_enums.MOD_FIX_OrdStatus_Suspended","OrdStatus.Suspended") :: (("Model_app_enums.MOD_FIX_OrdStatus_PendingNew","OrdStatus.PendingNew") :: (("Model_app_enums.MOD_FIX_OrdStatus_Calculated","OrdStatus.Calculated") :: (("Model_app_enums.MOD_FIX_OrdStatus_Expired","OrdStatus.Expired") :: (("Model_app_enums.MOD_FIX_OrdStatus_AcceptedForBidding","OrdStatus.AcceptedForBidding") :: (("Model_app_enums.MOD_FIX_OrdStatus_PendingReplace","OrdStatus.PendingReplace") :: (("Model_app_enums.MOD_FIX_OrdStatus_Replaced","OrdStatus.Replaced") :: (("Model_app_enums.MOD_FIX_ExecType_New","ExecType.New") :: (("Model_app_enums.MOD_FIX_ExecType_DoneForDay","ExecType.DoneForDay") :: (("Model_app_enums.MOD_FIX_ExecType_Canceled","ExecType.Canceled") :: (("Model_app_enums.MOD_FIX_ExecType_Replaced","ExecType.Replaced") :: (("Model_app_enums.MOD_FIX_ExecType_PendingCancel","ExecType.PendingCancel") :: (("Model_app_enums.MOD_FIX_ExecType_Stopped","ExecType.Stopped") :: (("Model_app_enums.MOD_FIX_ExecType_Rejected","ExecType.Rejected") :: (("Model_app_enums.MOD_FIX_ExecType_Suspended","ExecType.Suspended") :: (("Model_app_enums.MOD_FIX_ExecType_PendingNew","ExecType.PendingNew") :: (("Model_app_enums.MOD_FIX_ExecType_Calculated","ExecType.Calculated") :: (("Model_app_enums.MOD_FIX_ExecType_Expired","ExecType.Expired") :: (("Model_app_enums.MOD_FIX_ExecType_Restated","ExecType.Restated") :: (("Model_app_enums.MOD_FIX_ExecType_PendingReplace","ExecType.PendingReplace") :: (("Model_app_enums.MOD_FIX_ExecType_Trade","ExecType.Trade") :: (("Model_app_enums.MOD_FIX_ExecType_TradeCorrect","ExecType.TradeCorrect") :: (("Model_app_enums.MOD_FIX_ExecType_TradeCancel","ExecType.TradeCancel") :: (("Model_app_enums.MOD_FIX_ExecType_OrderStatus","ExecType.OrderStatus") :: (("Model_tags.M_Field_ClOrdID_Tag","ClOrdID") :: (("Model_tags.M_Field_OrderID_Tag","OrderID") :: (("Model_tags.M_Field_ExecID_Tag","ExecID") :: (("Model_tags.M_Field_ExecType_Tag","ExecType") :: (("Model_tags.M_Field_AvgPx_Tag","AvgPx") :: (("Model_tags.M_Field_Side_Tag","Side") :: (("Model_tags.M_Field_LeavesQty_Tag","LeavesQty") :: (("Model_tags.M_Field_CumQty_Tag","CumQty") :: (("Model_tags.M_Field_OrdStatus_Tag","OrdStatus") :: (("Model_tags.M_Field_Symbol_Tag","Symbol") :: (("Model_tags.M_Field_Text_Tag","Text") :: (("Model_tags.M_Msg_ExecutionReport_Tag","ExecutionReport") :: (("Model_tags.M_Field_ClOrdID_Tag","ClOrdID") :: (("Model_tags.M_Field_Side_Tag","Side") :: (("Model_tags.M_Field_TransactTime_Tag","TransactTime") :: (("Model_tags.M_Field_OrdType_Tag","OrdType") :: (("Model_tags.M_Field_Symbol_Tag","Symbol") :: (("Model_tags.M_Msg_NewOrderSingle_Tag","NewOrderSingle") :: []))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));; [@@@logic] \ No newline at end of file diff --git a/src-model/src-string-factory/string_checks.iml b/src-model/src-string-factory/string_checks.iml index 98c51876..ed803310 100644 --- a/src-model/src-string-factory/string_checks.iml +++ b/src-model/src-string-factory/string_checks.iml @@ -1,8 +1,16 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + string_checks.iml + +*) [@@@import "../src-types/actions.iml"] -open Actions;; [@@@import "../src-types/model_messages.iml"] +[@@@program] +open Actions;; open Model_messages;; let isAction (str : string) = diff --git a/src-model/src-types-pp/json_to_action.iml b/src-model/src-types-pp/json_to_action.iml index a4d6207c..0dcdfd26 100644 --- a/src-model/src-types-pp/json_to_action.iml +++ b/src-model/src-types-pp/json_to_action.iml @@ -1,12 +1,19 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + json_to_action.iml + +*) [@@@import "../src-types/actions.iml"] -open Actions;; [@@@import "../../src-core-pp/base_types_json.iml"] -open Base_types_json;; [@@@import "../../src-core-pp/datetime_json.iml"] +[@@@program] +open Actions;; +open Base_types_json;; open Datetime_json;; -[@@@require "decoders-yojson"] open Decoders_yojson.Basic.Decode;; open Decoders_yojson.Basic.Decode.Infix;; diff --git a/src-model/src-types-pp/json_to_enum.iml b/src-model/src-types-pp/json_to_enum.iml index 7bcc51d6..afa82ac6 100644 --- a/src-model/src-types-pp/json_to_enum.iml +++ b/src-model/src-types-pp/json_to_enum.iml @@ -1,11 +1,19 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + json_to_enum.iml + +*) [@@@require "decoders-yojson"] +[@@@import "../src-types/model_app_enums.iml"] +[@@@import "../src-string-factory/model_enum_names.iml"] +[@@@program] open Decoders_yojson.Basic.Decode;; open Decoders_yojson.Basic.Decode.Infix;; -[@@@import "../src-types/model_app_enums.iml"] open Model_app_enums;; -[@@@import "../src-string-factory/model_enum_names.iml"] open Model_enum_names;; let mod_enum_side_decoder : model_fix_side decoder = diff --git a/src-model/src-types-pp/json_to_internal.iml b/src-model/src-types-pp/json_to_internal.iml index 4f419cf7..9f005465 100644 --- a/src-model/src-types-pp/json_to_internal.iml +++ b/src-model/src-types-pp/json_to_internal.iml @@ -1,2 +1,9 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + json_to_internal.iml + +*) diff --git a/src-model/src-types-pp/json_to_message.iml b/src-model/src-types-pp/json_to_message.iml index 587faf00..b24f5e47 100644 --- a/src-model/src-types-pp/json_to_message.iml +++ b/src-model/src-types-pp/json_to_message.iml @@ -1,17 +1,24 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + json_to_message.iml + +*) [@@@import "../../src-core-pp/base_types_json.iml"] -open Base_types_json;; [@@@import "../../src-core-pp/datetime_json.iml"] +[@@@import "json_to_enum.iml"] +[@@@import "json_to_model_tag.iml"] +[@@@import "../src-types/model_messages.iml"] +[@@@program] +open Base_types_json;; open Datetime_json;; -[@@@require "decoders-yojson"] open Decoders_yojson.Basic.Decode;; open Decoders_yojson.Basic.Decode.Infix;; -[@@@import "json_to_enum.iml"] open Json_to_enum;; -[@@@import "json_to_model_tag.iml"] open Json_to_model_tag;; -[@@@import "../src-types/model_messages.iml"] open Model_messages;; let mod_message_executionreport_decoder : mod_executionreport_data decoder = diff --git a/src-model/src-types-pp/json_to_model_state.iml b/src-model/src-types-pp/json_to_model_state.iml index e4b8e786..291df4a8 100644 --- a/src-model/src-types-pp/json_to_model_state.iml +++ b/src-model/src-types-pp/json_to_model_state.iml @@ -1,13 +1,20 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + json_to_model_state.iml + +*) +[@@@import "json_to_action.iml"] +[@@@import "json_to_message.iml"] +[@@@import "../src-types/state.iml"] [@@@program] -[@@@require "decoders-yojson"] open Decoders_yojson.Basic.Decode;; open Decoders_yojson.Basic.Decode.Infix;; -[@@@import "json_to_action.iml"] open Json_to_action;; -[@@@import "json_to_message.iml"] open Json_to_message;; -[@@@import "../src-types/state.iml"] open State;; let model_state_decoder : model_state decoder = diff --git a/src-model/src-types-pp/json_to_model_tag.iml b/src-model/src-types-pp/json_to_model_tag.iml index a1e7207a..48b5c5f6 100644 --- a/src-model/src-types-pp/json_to_model_tag.iml +++ b/src-model/src-types-pp/json_to_model_tag.iml @@ -1,13 +1,20 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + json_to_model_tag.iml + +*) [@@@require "decoders-yojson"] +[@@@program] +[@@@import "../src-types/model_messages.iml"] +[@@@import "../src-string-factory/model_tag_names.iml"] +[@@@import "../src-types/model_tags.iml"] open Decoders_yojson.Basic.Decode;; open Decoders_yojson.Basic.Decode.Infix;; -[@@@import "../src-types/model_messages.iml"] open Model_messages;; -[@@@import "../src-string-factory/model_tag_names.iml"] open Model_tag_names;; -[@@@import "../src-types/model_tags.iml"] open Model_tags;; let message_tag_decoder : m_msg_tag decoder = diff --git a/src-model/src-types-pp/json_to_records.iml b/src-model/src-types-pp/json_to_records.iml index 4f419cf7..5f97dc70 100644 --- a/src-model/src-types-pp/json_to_records.iml +++ b/src-model/src-types-pp/json_to_records.iml @@ -1,2 +1,8 @@ -(* Aesthetic Integration copyright 2018 *) +(*** + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + json_to_records.iml + +*) diff --git a/src-model/src-types-pp/json_to_repeating_group.iml b/src-model/src-types-pp/json_to_repeating_group.iml index 4f419cf7..e69de29b 100644 --- a/src-model/src-types-pp/json_to_repeating_group.iml +++ b/src-model/src-types-pp/json_to_repeating_group.iml @@ -1,2 +0,0 @@ -(* Aesthetic Integration copyright 2018 *) - diff --git a/src-model/src-types-pp/model_actions_json.iml b/src-model/src-types-pp/model_actions_json.iml index dde0280a..6e3b18eb 100644 --- a/src-model/src-types-pp/model_actions_json.iml +++ b/src-model/src-types-pp/model_actions_json.iml @@ -1,12 +1,19 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + model_actions_json.iml + +*) [@@@import "../src-types/actions.iml"] -open Actions;; [@@@import "../../src-core-pp/base_types_json.iml"] -open Base_types_json;; [@@@import "../../src-core-pp/datetime_json.iml"] -open Datetime_json;; [@@@import "../../src-protocol-exts-pp/json_generator_utils.iml"] +[@@@program] +open Actions;; +open Base_types_json;; +open Datetime_json;; open Json_generator_utils;; open Yojson;; diff --git a/src-model/src-types-pp/model_enums_json.iml b/src-model/src-types-pp/model_enums_json.iml index 691bd99a..4ef687af 100644 --- a/src-model/src-types-pp/model_enums_json.iml +++ b/src-model/src-types-pp/model_enums_json.iml @@ -1,6 +1,13 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + model_enums_json.iml + +*) [@@@import "../src-string-factory/model_enum_names.iml"] +[@@@program] open Model_enum_names;; open Yojson;; diff --git a/src-model/src-types-pp/model_internals_json.iml b/src-model/src-types-pp/model_internals_json.iml index 7d90c71a..164b2584 100644 --- a/src-model/src-types-pp/model_internals_json.iml +++ b/src-model/src-types-pp/model_internals_json.iml @@ -1,4 +1,11 @@ -(* Aesthetic Integration copyright 2018 *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + model_internals_json.iml + +*) [@@@program] [@@@import "../src-types/state.iml"] open State;; diff --git a/src-model/src-types-pp/model_messages_json.iml b/src-model/src-types-pp/model_messages_json.iml index f45711ae..84e56307 100644 --- a/src-model/src-types-pp/model_messages_json.iml +++ b/src-model/src-types-pp/model_messages_json.iml @@ -1,16 +1,23 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + model_messages_json.iml + +*) [@@@import "../../src-core-pp/base_types_json.iml"] -open Base_types_json;; [@@@import "../../src-core-pp/datetime_json.iml"] -open Datetime_json;; [@@@import "../../src-protocol-exts-pp/json_generator_utils.iml"] -open Json_generator_utils;; [@@@import "model_enums_json.iml"] -open Model_enums_json;; [@@@import "../src-types/model_messages.iml"] -open Model_messages;; [@@@import "model_tags_json.iml"] +[@@@program] +open Base_types_json;; +open Datetime_json;; +open Json_generator_utils;; +open Model_enums_json;; +open Model_messages;; open Model_tags_json;; open Yojson;; diff --git a/src-model/src-types-pp/model_records_json.iml b/src-model/src-types-pp/model_records_json.iml index 4f419cf7..7a45373e 100644 --- a/src-model/src-types-pp/model_records_json.iml +++ b/src-model/src-types-pp/model_records_json.iml @@ -1,2 +1,8 @@ -(* Aesthetic Integration copyright 2018 *) +(*** + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + model_records_json.iml + +*) diff --git a/src-model/src-types-pp/model_repeating_groups_json.iml b/src-model/src-types-pp/model_repeating_groups_json.iml index 4f419cf7..859ae944 100644 --- a/src-model/src-types-pp/model_repeating_groups_json.iml +++ b/src-model/src-types-pp/model_repeating_groups_json.iml @@ -1,2 +1,8 @@ -(* Aesthetic Integration copyright 2018 *) +(*** + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + model_repeating_groups_json.iml + +*) diff --git a/src-model/src-types-pp/model_state_json.iml b/src-model/src-types-pp/model_state_json.iml index 4372ea4c..71d8fc9d 100644 --- a/src-model/src-types-pp/model_state_json.iml +++ b/src-model/src-types-pp/model_state_json.iml @@ -1,10 +1,17 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + model_state_json.iml + +*) [@@@import "model_actions_json.iml"] -open Model_actions_json;; [@@@import "model_messages_json.iml"] -open Model_messages_json;; [@@@import "../src-types/state.iml"] +[@@@program] +open Model_actions_json;; +open Model_messages_json;; open State;; open Yojson;; diff --git a/src-model/src-types-pp/model_tags_json.iml b/src-model/src-types-pp/model_tags_json.iml index abbb4a6b..c98b5930 100644 --- a/src-model/src-types-pp/model_tags_json.iml +++ b/src-model/src-types-pp/model_tags_json.iml @@ -1,8 +1,15 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + model_tags_json.iml + +*) [@@@import "../src-types/model_messages.iml"] -open Model_messages;; [@@@import "../src-types/model_tags.iml"] +[@@@program] +open Model_messages;; open Model_tags;; open Yojson;; diff --git a/src-model/src-types/actions.iml b/src-model/src-types/actions.iml index 247fa62a..b55dab5c 100644 --- a/src-model/src-types/actions.iml +++ b/src-model/src-types/actions.iml @@ -1,7 +1,15 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + actions.iml + +*) [@@@import "../../src-core/datetime.iml"] -open Datetime;; [@@@import "../../src-core/numeric.iml"] +open Datetime;; open Numeric;; type m_action_fix_x = { diff --git a/src-model/src-types/model_messages.iml b/src-model/src-types/model_messages.iml index 3f861db4..e8e037a9 100644 --- a/src-model/src-types/model_messages.iml +++ b/src-model/src-types/model_messages.iml @@ -1,11 +1,19 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + model_messages.iml + +*) [@@@import "../../src-core/datetime.iml"] -open Datetime;; [@@@import "model_app_enums.iml"] -open Model_app_enums;; [@@@import "model_tags.iml"] -open Model_tags;; [@@@import "../../src-core/numeric.iml"] +open Datetime;; +open Model_app_enums;; +open Model_tags;; open Numeric;; type mod_executionreport_data = { diff --git a/src-model/src-types/model_records.iml b/src-model/src-types/model_records.iml index 4f419cf7..dea05633 100644 --- a/src-model/src-types/model_records.iml +++ b/src-model/src-types/model_records.iml @@ -1,2 +1,9 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + model_records.iml + +*) diff --git a/src-model/src-types/model_repeating_groups.iml b/src-model/src-types/model_repeating_groups.iml index 4f419cf7..7e30a22d 100644 --- a/src-model/src-types/model_repeating_groups.iml +++ b/src-model/src-types/model_repeating_groups.iml @@ -1,2 +1,9 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + model_repeating_groups.iml + +*) diff --git a/src-model/src-types/model_tags.iml b/src-model/src-types/model_tags.iml index df6d9c2e..798b0228 100644 --- a/src-model/src-types/model_tags.iml +++ b/src-model/src-types/model_tags.iml @@ -1,4 +1,12 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + model_tags.iml + +*) type m_field_tag = | M_Field_OrdType_Tag diff --git a/src-model/src-types/state.iml b/src-model/src-types/state.iml index 9f242e8c..55d353fc 100644 --- a/src-model/src-types/state.iml +++ b/src-model/src-types/state.iml @@ -1,7 +1,15 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + state.iml + +*) [@@@import "actions.iml"] -open Actions;; [@@@import "model_messages.iml"] +open Actions;; open Model_messages;; type model_state = { diff --git a/src-model/src/act_checks.iml b/src-model/src/act_checks.iml index 5d5ccfcc..ca7733a4 100644 --- a/src-model/src/act_checks.iml +++ b/src-model/src/act_checks.iml @@ -1,7 +1,15 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + action_checks.iml + +*) [@@@import "../src-types/actions.iml"] -open Actions;; [@@@import "../src-types/state.iml"] +open Actions;; open State;; let is_valid_action_x (action_data : m_action_fix_x) = diff --git a/src-model/src/act_process.iml b/src-model/src/act_process.iml index 7cc3ef72..ed9576d9 100644 --- a/src-model/src/act_process.iml +++ b/src-model/src/act_process.iml @@ -1,9 +1,17 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + act_ptocess.iml + +*) [@@@import "act_checks.iml"] -open Act_checks;; [@@@import "../src-types/actions.iml"] -open Actions;; [@@@import "../src-types/state.iml"] +open Act_checks;; +open Actions;; open State;; let receive_action_x (m_state : model_state) (action_data : m_action_fix_x) = diff --git a/src-model/src/dune b/src-model/src/dune index 409d03b5..cda757c0 100644 --- a/src-model/src/dune +++ b/src-model/src/dune @@ -55,11 +55,11 @@ (run imandra-extract msg_receive.iml)))) (rule - (targets repeatingGroupConsistencyChecks.ml) - (deps repeatingGroupConsistencyChecks.iml) + (targets repeating_group_consistency_checks.ml) + (deps repeating_group_consistency_checks.iml) (action - (with-stdout-to repeatingGroupConsistencyChecks.ml - (run imandra-extract repeatingGroupConsistencyChecks.iml)))) + (with-stdout-to repeating_group_consistency_checks.ml + (run imandra-extract repeating_group_consistency_checks.iml)))) (rule (targets act_process.ml) diff --git a/src-model/src/msg_check_fields.iml b/src-model/src/msg_check_fields.iml index 6b9d86e1..6dde336d 100644 --- a/src-model/src/msg_check_fields.iml +++ b/src-model/src/msg_check_fields.iml @@ -1,9 +1,17 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + message_check_fields.iml + +*) [@@@import "../src-types/model_messages.iml"] -open Model_messages;; [@@@import "msg_check_types.iml"] -open Msg_check_types;; [@@@import "../src-types/state.iml"] +open Model_messages;; +open Msg_check_types;; open State;; let check_fields_NewOrderSingle (msg_data : mod_newordersingle_data) (m_state : model_state) = diff --git a/src-model/src/msg_check_types.iml b/src-model/src/msg_check_types.iml index 4f58688d..18a2cf94 100644 --- a/src-model/src/msg_check_types.iml +++ b/src-model/src/msg_check_types.iml @@ -1,5 +1,12 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + message_check_fields.iml + +*) type field_state = { is_invalid : bool; field_text : string diff --git a/src-model/src/msg_check_validate.iml b/src-model/src/msg_check_validate.iml index f4c207aa..5ab0587a 100644 --- a/src-model/src/msg_check_validate.iml +++ b/src-model/src/msg_check_validate.iml @@ -1,9 +1,17 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + message_check_validate.iml + +*) [@@@import "../src-types/model_messages.iml"] -open Model_messages;; [@@@import "msg_check_types.iml"] -open Msg_check_types;; [@@@import "../src-types/state.iml"] +open Model_messages;; +open Msg_check_types;; open State;; let check_validate_NewOrderSingle (msg_data : mod_newordersingle_data) (m_state : model_state) = diff --git a/src-model/src/msg_defaults.iml b/src-model/src/msg_defaults.iml index 6ca131be..5943131e 100644 --- a/src-model/src/msg_defaults.iml +++ b/src-model/src/msg_defaults.iml @@ -1,4 +1,12 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + message_defaults.iml + +*) [@@@import "../src-types/model_messages.iml"] open Model_messages;; diff --git a/src-model/src/msg_process.iml b/src-model/src/msg_process.iml index 1a27d1ce..7b2cc724 100644 --- a/src-model/src/msg_process.iml +++ b/src-model/src/msg_process.iml @@ -1,19 +1,27 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + message_process.iml + +*) [@@@import "../src-types/model_messages.iml"] -open Model_messages;; [@@@import "msg_check_fields.iml"] -open Msg_check_fields;; [@@@import "msg_check_types.iml"] -open Msg_check_types;; [@@@import "msg_check_validate.iml"] -open Msg_check_validate;; [@@@import "msg_defaults.iml"] -open Msg_defaults;; [@@@import "msg_receive.iml"] -open Msg_receive;; [@@@import "msg_reject.iml"] -open Msg_reject;; [@@@import "../src-types/state.iml"] +open Model_messages;; +open Msg_check_fields;; +open Msg_check_types;; +open Msg_check_validate;; +open Msg_defaults;; +open Msg_receive;; +open Msg_reject;; open State;; let process_NewOrderSingle (m_state : model_state) (msg_data : mod_newordersingle_data) = diff --git a/src-model/src/msg_receive.iml b/src-model/src/msg_receive.iml index df255945..467cb4b5 100644 --- a/src-model/src/msg_receive.iml +++ b/src-model/src/msg_receive.iml @@ -1,11 +1,19 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + message_receive.iml + +*) [@@@import "../src-types/model_app_enums.iml"] -open Model_app_enums;; [@@@import "../src-types/model_messages.iml"] -open Model_messages;; [@@@import "../../src-core/numeric.iml"] -open Numeric;; [@@@import "../src-types/state.iml"] +open Model_app_enums;; +open Model_messages;; +open Numeric;; open State;; let receive_message_NewOrderSingle (m_state : model_state) (msg_data : mod_newordersingle_data) = diff --git a/src-model/src/msg_reject.iml b/src-model/src/msg_reject.iml index 8c5631ce..f994b3a0 100644 --- a/src-model/src/msg_reject.iml +++ b/src-model/src/msg_reject.iml @@ -1,13 +1,21 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + message_reject.iml + +*) [@@@import "../src-types/model_app_enums.iml"] -open Model_app_enums;; [@@@import "../src-types/model_messages.iml"] -open Model_messages;; [@@@import "../src-types/model_tags.iml"] -open Model_tags;; [@@@import "../../src-core/numeric.iml"] -open Numeric;; [@@@import "../src-types/state.iml"] +open Model_app_enums;; +open Model_messages;; +open Model_tags;; +open Numeric;; open State;; let reject_NewOrderSingle_missingfield (m_state : model_state) (reject_text : string) = diff --git a/src-model/src/repeatingGroupConsistencyChecks.iml b/src-model/src/repeatingGroupConsistencyChecks.iml deleted file mode 100644 index 4f419cf7..00000000 --- a/src-model/src/repeatingGroupConsistencyChecks.iml +++ /dev/null @@ -1,2 +0,0 @@ -(* Aesthetic Integration copyright 2018 *) - diff --git a/src-model/src/venue.iml b/src-model/src/venue.iml index 19cbf574..c8cc5278 100644 --- a/src-model/src/venue.iml +++ b/src-model/src/venue.iml @@ -1,11 +1,19 @@ -(* Aesthetic Integration copyright 2018 *) +(** Time defaults for a particular FIX implementation *) +(*** + + Aesthetic Integration Limited + Copyright (c) 2014 - 2019 + + venue.iml + +*) [@@@import "act_process.iml"] -open Act_process;; [@@@import "../src-types/model_messages.iml"] -open Model_messages;; [@@@import "msg_process.iml"] -open Msg_process;; [@@@import "../src-types/state.iml"] +open Act_process;; +open Model_messages;; +open Msg_process;; open State;; let one_step (m_state : model_state) = diff --git a/src-protocol-exts-pp-vg/full_app_enums_json.iml b/src-protocol-exts-pp-vg/full_app_enums_json.iml index 2ba70a77..48d524e6 100644 --- a/src-protocol-exts-pp-vg/full_app_enums_json.iml +++ b/src-protocol-exts-pp-vg/full_app_enums_json.iml @@ -2,14 +2,14 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_app_enums_json.ml *) +[@@@import "../src-protocol-exts-vg/full_app_enums.iml"] [@@@program] open Yojson;; -[@@@import "../src-protocol-exts-vg/full_app_enums.iml"] open Full_app_enums;; diff --git a/src-protocol-exts-pp-vg/full_app_messages_json.iml b/src-protocol-exts-pp-vg/full_app_messages_json.iml index 11c6e9e0..80c4be00 100644 --- a/src-protocol-exts-pp-vg/full_app_messages_json.iml +++ b/src-protocol-exts-pp-vg/full_app_messages_json.iml @@ -2,23 +2,23 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_app_messages_json.ml *) +[@@@import "../src-protocol-exts-vg/full_app_messages.iml"] +[@@@import "../src-core-pp/base_types_json.iml"] +[@@@import "full_app_enums_json.iml"] +[@@@import "full_app_records_json.iml"] +[@@@import "../src-core-time-defaults-pp/time_defaults_json.iml"] [@@@program] open Yojson;; -[@@@import "../src-protocol-exts-vg/full_app_messages.iml"] open Full_app_messages;; -[@@@import "../src-core-pp/base_types_json.iml"] open Base_types_json;; -[@@@import "full_app_enums_json.iml"] open Full_app_enums_json;; -[@@@import "full_app_records_json.iml"] open Full_app_records_json;; -[@@@import "../src-core-time-defaults-pp/timeDefaults_json.iml"] -open TimeDefaults_json;; +open Time_defaults_json;; let assoc_filter_nulls l : json = `Assoc ( List.filter (function ( _, `Null ) -> false | _ -> true ) l ) diff --git a/src-protocol-exts-pp-vg/full_app_records_json.iml b/src-protocol-exts-pp-vg/full_app_records_json.iml index 618613a1..620c4054 100644 --- a/src-protocol-exts-pp-vg/full_app_records_json.iml +++ b/src-protocol-exts-pp-vg/full_app_records_json.iml @@ -2,21 +2,21 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_app_records_json.ml *) +[@@@import "../src-protocol-exts-vg/full_app_records.iml"] +[@@@import "../src-core-pp/base_types_json.iml"] +[@@@import "../src-core-pp/datetime_json.iml"] +[@@@import "full_app_enums_json.iml"] [@@@program] open Yojson;; -[@@@import "../src-protocol-exts-vg/full_app_records.iml"] open Full_app_records;; -[@@@import "../src-core-pp/base_types_json.iml"] open Base_types_json;; -[@@@import "../src-core-pp/datetime_json.iml"] open Datetime_json;; -[@@@import "full_app_enums_json.iml"] open Full_app_enums_json;; diff --git a/src-protocol-exts-pp-vg/full_app_tags_json.iml b/src-protocol-exts-pp-vg/full_app_tags_json.iml index 4f69d28f..3e433557 100644 --- a/src-protocol-exts-pp-vg/full_app_tags_json.iml +++ b/src-protocol-exts-pp-vg/full_app_tags_json.iml @@ -2,14 +2,14 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_app_tags_json.ml *) +[@@@import "../src-protocol-exts-vg/full_app_tags.iml"] [@@@program] open Yojson;; -[@@@import "../src-protocol-exts-vg/full_app_tags.iml"] open Full_app_tags;; diff --git a/src-protocol-exts-pp-vg/parse_app_enums.iml b/src-protocol-exts-pp-vg/parse_app_enums.iml index fa6cf30d..b1705280 100644 --- a/src-protocol-exts-pp-vg/parse_app_enums.iml +++ b/src-protocol-exts-pp-vg/parse_app_enums.iml @@ -2,14 +2,14 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 parse_app_enums.ml *) -[@@@program] [@@@import "../src-protocol-exts-vg/full_app_enums.iml"] +[@@@program] open Full_app_enums;; let parse_pricetype = function diff --git a/src-protocol-exts-pp-vg/parse_app_messages.iml b/src-protocol-exts-pp-vg/parse_app_messages.iml index 74c9d544..8b6c00d3 100644 --- a/src-protocol-exts-pp-vg/parse_app_messages.iml +++ b/src-protocol-exts-pp-vg/parse_app_messages.iml @@ -2,27 +2,27 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 parse_app_messages.ml *) -[@@@program] [@@@import "../src-core-pp/parser_utils.iml"] -open Parser_utils.Parser;; [@@@import "../src-protocol-exts-vg/full_app_tags.iml"] -open Full_app_tags;; [@@@import "../src-protocol-exts-vg/full_app_messages.iml"] -open Full_app_messages;; [@@@import "../src-core-pp/parse_base_types.iml"] -open Parse_base_types;; [@@@import "parse_app_enums.iml"] -open Parse_app_enums;; [@@@import "parse_app_records.iml"] +[@@@import "../src-core-time-defaults-pp/time_defaults_parser.iml"] +[@@@program] +open Parser_utils.Parser;; +open Full_app_tags;; +open Full_app_messages;; +open Parse_base_types;; +open Parse_app_enums;; open Parse_app_records;; -[@@@import "../src-core-time-defaults-pp/timeDefaults_parser.iml"] -open TimeDefaults_parser;; +open Time_defaults_parser;; diff --git a/src-protocol-exts-pp-vg/parse_app_records.iml b/src-protocol-exts-pp-vg/parse_app_records.iml index 63452124..12578815 100644 --- a/src-protocol-exts-pp-vg/parse_app_records.iml +++ b/src-protocol-exts-pp-vg/parse_app_records.iml @@ -2,21 +2,21 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 parse_app_records.ml *) -[@@@program] [@@@import "../src-core-pp/parser_utils.iml"] -open Parser_utils.Parser;; [@@@import "../src-protocol-exts-vg/full_app_records.iml"] -open Full_app_records;; [@@@import "../src-core-pp/parse_base_types.iml"] -open Parse_base_types;; [@@@import "../src-core-pp/parse_datetime.iml"] -open Parse_datetime;; [@@@import "parse_app_enums.iml"] +[@@@program] +open Parser_utils.Parser;; +open Full_app_records;; +open Parse_base_types;; +open Parse_datetime;; open Parse_app_enums;; diff --git a/src-protocol-exts-pp-vg/parse_app_tags.iml b/src-protocol-exts-pp-vg/parse_app_tags.iml index c227a467..8b9f0844 100644 --- a/src-protocol-exts-pp-vg/parse_app_tags.iml +++ b/src-protocol-exts-pp-vg/parse_app_tags.iml @@ -2,13 +2,13 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 parse_app_tags.ml *) -[@@@program] [@@@import "../src-protocol-exts-vg/full_app_tags.iml"] +[@@@program] open Full_app_tags;; diff --git a/src-protocol-exts-pp-vg/protocol_exts_pp.mllib b/src-protocol-exts-pp-vg/protocol_exts_pp.mllib deleted file mode 100644 index 151cffeb..00000000 --- a/src-protocol-exts-pp-vg/protocol_exts_pp.mllib +++ /dev/null @@ -1,8 +0,0 @@ -Full_app_enums_json -Full_app_tags_json -Full_app_records_json -Full_app_messages_json -Parse_app_enums -Parse_app_tags -Parse_app_records -Parse_app_messages diff --git a/src-protocol-exts-pp/encode_app_enums.iml b/src-protocol-exts-pp/encode_app_enums.iml index 7da92d38..e5caf313 100644 --- a/src-protocol-exts-pp/encode_app_enums.iml +++ b/src-protocol-exts-pp/encode_app_enums.iml @@ -1,8 +1,8 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(* Aesthetic Integration copyright 2019 *) [@@@import "../src-protocol-exts/full_app_enums.iml"] -open Full_app_enums;; [@@@import "../src-core-pp/parser_utils.iml"] +[@@@program] +open Full_app_enums;; open Parser_utils.Parser;; let encode_week (d) = diff --git a/src-protocol-exts-pp/encode_app_messages.iml b/src-protocol-exts-pp/encode_app_messages.iml index f88d4e02..328c34a1 100644 --- a/src-protocol-exts-pp/encode_app_messages.iml +++ b/src-protocol-exts-pp/encode_app_messages.iml @@ -1,16 +1,16 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(* Aesthetic Integration copyright 2019 *) [@@@import "encode_app_enums.iml"] -open Encode_app_enums;; [@@@import "encode_app_records.iml"] -open Encode_app_records;; [@@@import "../src-core-pp/encode_base_types.iml"] -open Encode_base_types;; [@@@import "../src-core-pp/encode_datetime.iml"] -open Encode_datetime;; [@@@import "encode_utils.iml"] -open Encode_utils;; [@@@import "../src-protocol-exts/full_app_messages.iml"] +[@@@program] +open Encode_app_enums;; +open Encode_app_records;; +open Encode_base_types;; +open Encode_datetime;; +open Encode_utils;; open Full_app_messages;; let encode_ExecutionReport (msg) = diff --git a/src-protocol-exts-pp/encode_app_records.iml b/src-protocol-exts-pp/encode_app_records.iml index ffe4a375..eb9ce50e 100644 --- a/src-protocol-exts-pp/encode_app_records.iml +++ b/src-protocol-exts-pp/encode_app_records.iml @@ -1,14 +1,14 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(* Aesthetic Integration copyright 2019 *) [@@@import "encode_app_enums.iml"] -open Encode_app_enums;; [@@@import "../src-core-pp/encode_base_types.iml"] -open Encode_base_types;; [@@@import "../src-core-pp/encode_datetime.iml"] -open Encode_datetime;; [@@@import "encode_utils.iml"] -open Encode_utils;; [@@@import "../src-protocol-exts/full_app_records.iml"] +[@@@program] +open Encode_app_enums;; +open Encode_base_types;; +open Encode_datetime;; +open Encode_utils;; open Full_app_records;; let encode_LogonMsgTypes (msg) = diff --git a/src-protocol-exts-pp/encode_app_tags.iml b/src-protocol-exts-pp/encode_app_tags.iml index d6e95f11..809b3cb4 100644 --- a/src-protocol-exts-pp/encode_app_tags.iml +++ b/src-protocol-exts-pp/encode_app_tags.iml @@ -1,6 +1,6 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(* Aesthetic Integration copyright 2019 *) [@@@import "../src-protocol-exts/full_app_tags.iml"] +[@@@program] open Full_app_tags;; let encode_app_msg_tag (d) = diff --git a/src-protocol-exts-pp/encode_utils.iml b/src-protocol-exts-pp/encode_utils.iml index 84e7523d..d679e19e 100644 --- a/src-protocol-exts-pp/encode_utils.iml +++ b/src-protocol-exts-pp/encode_utils.iml @@ -1,8 +1,8 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(* Aesthetic Integration copyright 2019 *) [@@@import "../src-core-pp/encode_base_types.iml"] -open Encode_base_types;; [@@@import "../src-core-pp/encode_datetime.iml"] +[@@@program] +open Encode_base_types;; open Encode_datetime;; let enc_req (f) (x) = diff --git a/src-protocol-exts-pp/full_app_enums_json.iml b/src-protocol-exts-pp/full_app_enums_json.iml index 68a551df..c00262d5 100644 --- a/src-protocol-exts-pp/full_app_enums_json.iml +++ b/src-protocol-exts-pp/full_app_enums_json.iml @@ -1,6 +1,6 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(* Aesthetic Integration copyright 2019 *) [@@@import "../src-protocol-exts/full_app_enums.iml"] +[@@@program] open Full_app_enums;; open Yojson;; diff --git a/src-protocol-exts-pp/full_app_messages_json.iml b/src-protocol-exts-pp/full_app_messages_json.iml index 2468a478..55880ab2 100644 --- a/src-protocol-exts-pp/full_app_messages_json.iml +++ b/src-protocol-exts-pp/full_app_messages_json.iml @@ -1,16 +1,16 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(* Aesthetic Integration copyright 2019 *) [@@@import "../src-core-pp/base_types_json.iml"] -open Base_types_json;; [@@@import "../src-core-pp/datetime_json.iml"] -open Datetime_json;; [@@@import "full_app_enums_json.iml"] -open Full_app_enums_json;; [@@@import "../src-protocol-exts/full_app_messages.iml"] -open Full_app_messages;; [@@@import "full_app_records_json.iml"] -open Full_app_records_json;; [@@@import "json_generator_utils.iml"] +[@@@program] +open Base_types_json;; +open Datetime_json;; +open Full_app_enums_json;; +open Full_app_messages;; +open Full_app_records_json;; open Json_generator_utils;; open Yojson;; diff --git a/src-protocol-exts-pp/full_app_records_json.iml b/src-protocol-exts-pp/full_app_records_json.iml index ad695a22..67f6409a 100644 --- a/src-protocol-exts-pp/full_app_records_json.iml +++ b/src-protocol-exts-pp/full_app_records_json.iml @@ -1,14 +1,14 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(* Aesthetic Integration copyright 2019 *) [@@@import "../src-core-pp/base_types_json.iml"] -open Base_types_json;; [@@@import "../src-core-pp/datetime_json.iml"] -open Datetime_json;; [@@@import "full_app_enums_json.iml"] -open Full_app_enums_json;; [@@@import "../src-protocol-exts/full_app_records.iml"] -open Full_app_records;; [@@@import "json_generator_utils.iml"] +[@@@program] +open Base_types_json;; +open Datetime_json;; +open Full_app_enums_json;; +open Full_app_records;; open Json_generator_utils;; open Yojson;; diff --git a/src-protocol-exts-pp/full_app_tags_json.iml b/src-protocol-exts-pp/full_app_tags_json.iml index 8390ae6a..1b4494a4 100644 --- a/src-protocol-exts-pp/full_app_tags_json.iml +++ b/src-protocol-exts-pp/full_app_tags_json.iml @@ -1,6 +1,6 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(* Aesthetic Integration copyright 2019 *) [@@@import "../src-protocol-exts/full_app_tags.iml"] +[@@@program] open Full_app_tags;; open Yojson;; diff --git a/src-protocol-exts-pp/json_generator_utils.iml b/src-protocol-exts-pp/json_generator_utils.iml index 148a8257..486d6188 100644 --- a/src-protocol-exts-pp/json_generator_utils.iml +++ b/src-protocol-exts-pp/json_generator_utils.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2018 *) +(* Aesthetic Integration copyright 2019 *) [@@@program] open Yojson;; diff --git a/src-protocol-exts-pp/parse_app_enums.iml b/src-protocol-exts-pp/parse_app_enums.iml index e09cf74a..3534e39b 100644 --- a/src-protocol-exts-pp/parse_app_enums.iml +++ b/src-protocol-exts-pp/parse_app_enums.iml @@ -1,8 +1,8 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(* Aesthetic Integration copyright 2019 *) [@@@import "../src-protocol-exts/full_app_enums.iml"] -open Full_app_enums;; [@@@import "../src-core-pp/parser_utils.iml"] +[@@@program] +open Full_app_enums;; open Parser_utils.Parser;; let parse_week (str) = diff --git a/src-protocol-exts-pp/parse_app_messages.iml b/src-protocol-exts-pp/parse_app_messages.iml index a9768f27..5e45f3f3 100644 --- a/src-protocol-exts-pp/parse_app_messages.iml +++ b/src-protocol-exts-pp/parse_app_messages.iml @@ -1,18 +1,18 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(* Aesthetic Integration copyright 2019 *) [@@@import "../src-protocol-exts/full_app_messages.iml"] -open Full_app_messages;; [@@@import "../src-protocol-exts/full_app_tags.iml"] -open Full_app_tags;; [@@@import "parse_app_enums.iml"] -open Parse_app_enums;; [@@@import "parse_app_records.iml"] -open Parse_app_records;; [@@@import "../src-core-pp/parse_base_types.iml"] -open Parse_base_types;; [@@@import "../src-core-pp/parse_datetime.iml"] -open Parse_datetime;; [@@@import "../src-core-pp/parser_utils.iml"] +[@@@program] +open Full_app_messages;; +open Full_app_tags;; +open Parse_app_enums;; +open Parse_app_records;; +open Parse_base_types;; +open Parse_datetime;; open Parser_utils.Parser;; let parse_ExecutionReport (msg) = diff --git a/src-protocol-exts-pp/parse_app_records.iml b/src-protocol-exts-pp/parse_app_records.iml index 2455ef7c..cd57067e 100644 --- a/src-protocol-exts-pp/parse_app_records.iml +++ b/src-protocol-exts-pp/parse_app_records.iml @@ -1,14 +1,14 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(* Aesthetic Integration copyright 2019 *) [@@@import "../src-protocol-exts/full_app_records.iml"] -open Full_app_records;; [@@@import "parse_app_enums.iml"] -open Parse_app_enums;; [@@@import "../src-core-pp/parse_base_types.iml"] -open Parse_base_types;; [@@@import "../src-core-pp/parse_datetime.iml"] -open Parse_datetime;; [@@@import "../src-core-pp/parser_utils.iml"] +[@@@program] +open Full_app_records;; +open Parse_app_enums;; +open Parse_base_types;; +open Parse_datetime;; open Parser_utils.Parser;; let parse_LogonMsgTypes (msg) = diff --git a/src-protocol-exts-pp/parse_app_tags.iml b/src-protocol-exts-pp/parse_app_tags.iml index 705b06d4..cb55c24e 100644 --- a/src-protocol-exts-pp/parse_app_tags.iml +++ b/src-protocol-exts-pp/parse_app_tags.iml @@ -1,6 +1,6 @@ -(* Aesthetic Integration copyright 2018 *) -[@@@program] +(* Aesthetic Integration copyright 2019 *) [@@@import "../src-protocol-exts/full_app_tags.iml"] +[@@@program] open Full_app_tags;; let parse_app_msg_tag (tag) = diff --git a/src-protocol-exts-vg/full_app_enums.iml b/src-protocol-exts-vg/full_app_enums.iml index a16f1de8..f50c9a7d 100644 --- a/src-protocol-exts-vg/full_app_enums.iml +++ b/src-protocol-exts-vg/full_app_enums.iml @@ -2,7 +2,7 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_app_enums.ml diff --git a/src-protocol-exts-vg/full_app_messages.iml b/src-protocol-exts-vg/full_app_messages.iml index d9affb46..c44758ff 100644 --- a/src-protocol-exts-vg/full_app_messages.iml +++ b/src-protocol-exts-vg/full_app_messages.iml @@ -2,21 +2,21 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_app_messages.ml *) [@@@import "../src-core/numeric.iml"] -open Numeric;; [@@@import "full_app_enums.iml"] -open Full_app_enums;; [@@@import "full_app_tags.iml"] -open Full_app_tags;; [@@@import "full_app_records.iml"] +[@@@import "../src-core-time-defaults/time_defaults.iml"] +open Numeric;; +open Full_app_enums;; +open Full_app_tags;; open Full_app_records;; -[@@@import "../src-core-time-defaults/timeDefaults.iml"] -open TimeDefaults;; +open Time_defaults;; (** New Order Single message data. {{: http://www.onixs.biz/fix-dictionary/4.4/msgType_D_68.html} More details. } *) type full_msg_new_order_single_data = { diff --git a/src-protocol-exts-vg/full_app_records.iml b/src-protocol-exts-vg/full_app_records.iml index 50b57ea5..7f9593f8 100644 --- a/src-protocol-exts-vg/full_app_records.iml +++ b/src-protocol-exts-vg/full_app_records.iml @@ -2,15 +2,15 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_app_records.ml *) [@@@import "../src-core/datetime.iml"] -open Datetime;; [@@@import "full_app_enums.iml"] +open Datetime;; open Full_app_enums;; diff --git a/src-protocol-exts-vg/full_app_tags.iml b/src-protocol-exts-vg/full_app_tags.iml index 232e55b4..34dfd871 100644 --- a/src-protocol-exts-vg/full_app_tags.iml +++ b/src-protocol-exts-vg/full_app_tags.iml @@ -2,7 +2,7 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_app_tags.ml diff --git a/src-protocol-exts-vg/protocol_exts.mllib b/src-protocol-exts-vg/protocol_exts.mllib deleted file mode 100644 index d2116adc..00000000 --- a/src-protocol-exts-vg/protocol_exts.mllib +++ /dev/null @@ -1,4 +0,0 @@ -Full_app_enums -Full_app_messages -Full_app_records -Full_app_tags diff --git a/src-protocol-exts/full_app_enums.iml b/src-protocol-exts/full_app_enums.iml index d0719322..558e0399 100644 --- a/src-protocol-exts/full_app_enums.iml +++ b/src-protocol-exts/full_app_enums.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2018 *) +(* Aesthetic Integration copyright 2019 *) type fix_week = | FIX_week_noweek diff --git a/src-protocol-exts/full_app_messages.iml b/src-protocol-exts/full_app_messages.iml index ec096ce9..0f04180b 100644 --- a/src-protocol-exts/full_app_messages.iml +++ b/src-protocol-exts/full_app_messages.iml @@ -1,13 +1,13 @@ -(* Aesthetic Integration copyright 2018 *) +(* Aesthetic Integration copyright 2019 *) [@@@import "../src-core/datetime.iml"] -open Datetime;; [@@@import "full_app_enums.iml"] -open Full_app_enums;; [@@@import "full_app_records.iml"] -open Full_app_records;; [@@@import "full_app_tags.iml"] -open Full_app_tags;; [@@@import "../src-core/numeric.iml"] +open Datetime;; +open Full_app_enums;; +open Full_app_records;; +open Full_app_tags;; open Numeric;; (** The execution report message is used to: diff --git a/src-protocol-exts/full_app_records.iml b/src-protocol-exts/full_app_records.iml index a41e4fe1..4f0e40ee 100644 --- a/src-protocol-exts/full_app_records.iml +++ b/src-protocol-exts/full_app_records.iml @@ -1,10 +1,10 @@ -(* Aesthetic Integration copyright 2018 *) +(* Aesthetic Integration copyright 2019 *) [@@@import "../src-core/datetime.iml"] -open Datetime;; [@@@import "full_app_enums.iml"] -open Full_app_enums;; [@@@import "../src-core/numeric.iml"] open Numeric;; +open Datetime;; +open Full_app_enums;; type fix_rg_inner_logonmsgtypes = { (** Specifies the number of repeating RefMsgTypes specified*) diff --git a/src-protocol-exts/full_app_tags.iml b/src-protocol-exts/full_app_tags.iml index b03c74f0..f7412813 100644 --- a/src-protocol-exts/full_app_tags.iml +++ b/src-protocol-exts/full_app_tags.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2018 *) +(* Aesthetic Integration copyright 2019 *) type full_app_msg_tag = | Full_Msg_ExecutionReport_Tag diff --git a/src-protocol-pp/encode_admin_enums.iml b/src-protocol-pp/encode_admin_enums.iml index 872dc7f7..65472e26 100644 --- a/src-protocol-pp/encode_admin_enums.iml +++ b/src-protocol-pp/encode_admin_enums.iml @@ -2,13 +2,13 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 parse_admin_enums.ml *) -[@@@program] [@@@import "../src-protocol/full_admin_enums.iml"] +[@@@program] open Full_admin_enums;; diff --git a/src-protocol-pp/encode_admin_messages.iml b/src-protocol-pp/encode_admin_messages.iml index 69c4a736..bbd7add1 100644 --- a/src-protocol-pp/encode_admin_messages.iml +++ b/src-protocol-pp/encode_admin_messages.iml @@ -2,23 +2,23 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 parse_admin_messages.ml *) -[@@@program] [@@@import "../src-protocol/full_admin_messages.iml"] -open Full_admin_messages;; [@@@import "../src-core-pp/encode_base_types.iml"] -open Encode_base_types;; [@@@import "../src-core-pp/encode_datetime.iml"] -open Encode_datetime;; [@@@import "encode_admin_enums.iml"] -open Encode_admin_enums;; [@@@import "encode_full_tags.iml"] -open Encode_full_tags;; [@@@import "../src-core/datetime.iml"] +[@@@program] +open Full_admin_messages;; +open Encode_base_types;; +open Encode_datetime;; +open Encode_admin_enums;; +open Encode_full_tags;; open Datetime;; let req f x = Some (f x);; diff --git a/src-protocol-pp/encode_admin_tags.iml b/src-protocol-pp/encode_admin_tags.iml index 86125719..3658e5f4 100644 --- a/src-protocol-pp/encode_admin_tags.iml +++ b/src-protocol-pp/encode_admin_tags.iml @@ -2,13 +2,13 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 parse_admin_tags.ml *) -[@@@program] [@@@import "../src-protocol/full_admin_tags.iml"] +[@@@program] open Full_admin_tags;; diff --git a/src-protocol-pp/encode_full_messages.iml b/src-protocol-pp/encode_full_messages.iml index b334a991..6f2b97e9 100644 --- a/src-protocol-pp/encode_full_messages.iml +++ b/src-protocol-pp/encode_full_messages.iml @@ -2,24 +2,24 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 parse_full_messages.ml *) -[@@@program] [@@@import "../src-protocol/full_messages.iml"] -open Full_messages [@@@import "../src-core-pp/encode_base_types.iml"] -open Encode_base_types [@@@import "encode_full_tags.iml"] -open Encode_full_tags -[@@@import "../src-core-time-defaults-pp/timeDefaults_pp.iml"] -open TimeDefaults_pp +[@@@import "../src-core-time-defaults-pp/time_defaults_pp.iml"] [@@@import "../src-core-utils/fix_version.iml"] -open Fix_version [@@@import "encode_admin_messages.iml"] [@@@import "../src-protocol-exts-pp/encode_app_messages.iml"] +[@@@program] +open Full_messages +open Encode_base_types +open Encode_full_tags +open Time_defaults_pp +open Fix_version let req f x = Some (f x);; let opt f v = match v with Some x -> Some ( f x ) | None -> None;; diff --git a/src-protocol-pp/encode_full_tags.iml b/src-protocol-pp/encode_full_tags.iml index 579ebe72..7683aa3a 100644 --- a/src-protocol-pp/encode_full_tags.iml +++ b/src-protocol-pp/encode_full_tags.iml @@ -2,17 +2,17 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 parse_full_tags.ml *) -[@@@program] [@@@import "../src-protocol/full_message_tags.iml"] -open Full_message_tags;; [@@@import "../src-protocol-exts-pp/encode_app_tags.iml"] -open Encode_app_tags;; [@@@import "encode_admin_tags.iml"] +[@@@program] +open Full_message_tags;; +open Encode_app_tags;; open Encode_admin_tags;; diff --git a/src-protocol-pp/fix_engine_json.iml b/src-protocol-pp/fix_engine_json.iml index fa469bc8..afc5fe61 100644 --- a/src-protocol-pp/fix_engine_json.iml +++ b/src-protocol-pp/fix_engine_json.iml @@ -2,25 +2,25 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 fix_engine_json.ml *) +[@@@import "../src/fix_engine_state.iml"] +[@@@import "../src-core-pp/datetime_json.iml"] +[@@@import "../src-core-pp/base_types_json.iml"] +[@@@import "../src-protocol-exts-pp/full_app_messages_json.iml"] +[@@@import "full_messages_json.iml"] +[@@@import "../src-core-time-defaults-pp/time_defaults_json.iml"] [@@@program] open Yojson -[@@@import "../src/fix_engine_state.iml"] open Fix_engine_state -[@@@import "../src-core-pp/datetime_json.iml"] open Datetime_json -[@@@import "../src-core-pp/base_types_json.iml"] open Base_types_json -[@@@import "../src-protocol-exts-pp/full_app_messages_json.iml"] open Full_app_messages_json -[@@@import "full_messages_json.iml"] open Full_messages_json -[@@@import "../src-core-time-defaults-pp/timeDefaults_json.iml"] -open TimeDefaults_json +open Time_defaults_json let fix_engine_mode_to_string = function diff --git a/src-protocol-pp/full_admin_enums_json.iml b/src-protocol-pp/full_admin_enums_json.iml index 9bc3ce03..68d01758 100644 --- a/src-protocol-pp/full_admin_enums_json.iml +++ b/src-protocol-pp/full_admin_enums_json.iml @@ -2,14 +2,14 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_admin_enums_json.ml *) +[@@@import "../src-protocol/full_admin_enums.iml"] [@@@program] open Yojson;; -[@@@import "../src-protocol/full_admin_enums.iml"] open Full_admin_enums;; diff --git a/src-protocol-pp/full_admin_messages_json.iml b/src-protocol-pp/full_admin_messages_json.iml index f2abe905..4853d3c9 100644 --- a/src-protocol-pp/full_admin_messages_json.iml +++ b/src-protocol-pp/full_admin_messages_json.iml @@ -2,22 +2,22 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_admin_messages_json.ml *) +[@@@import "../src-protocol/full_admin_messages.iml"] +[@@@import "../src-core-pp/base_types_json.iml"] +[@@@import "../src-core-pp/datetime_json.iml"] +[@@@import "full_admin_enums_json.iml"] +[@@@import "../src-protocol-pp/full_message_tags_json.iml"] [@@@program] open Yojson;; -[@@@import "../src-protocol/full_admin_messages.iml"] open Full_admin_messages;; -[@@@import "../src-core-pp/base_types_json.iml"] open Base_types_json;; -[@@@import "../src-core-pp/datetime_json.iml"] open Datetime_json;; -[@@@import "full_admin_enums_json.iml"] open Full_admin_enums_json;; -[@@@import "../src-protocol-pp/full_message_tags_json.iml"] open Full_message_tags_json;; (** *) diff --git a/src-protocol-pp/full_admin_tags_json.iml b/src-protocol-pp/full_admin_tags_json.iml index c8ab6b88..bbc0faf0 100644 --- a/src-protocol-pp/full_admin_tags_json.iml +++ b/src-protocol-pp/full_admin_tags_json.iml @@ -2,14 +2,14 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_admin_tags_json.ml *) +[@@@import "../src-protocol/full_admin_tags.iml"] [@@@program] open Yojson;; -[@@@import "../src-protocol/full_admin_tags.iml"] open Full_admin_tags;; diff --git a/src-protocol-pp/full_message_tags_json.iml b/src-protocol-pp/full_message_tags_json.iml index 22e98da8..4e1580d1 100644 --- a/src-protocol-pp/full_message_tags_json.iml +++ b/src-protocol-pp/full_message_tags_json.iml @@ -2,17 +2,17 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_message_tags_json.ml *) -[@@@program] [@@@import "../src-protocol/full_message_tags.iml"] -open Full_message_tags;; [@@@import "../src-protocol-exts-pp/full_app_tags_json.iml"] -open Full_app_tags_json;; [@@@import "full_admin_tags_json.iml"] +[@@@program] +open Full_app_tags_json;; +open Full_message_tags;; open Full_admin_tags_json;; diff --git a/src-protocol-pp/full_messages_json.iml b/src-protocol-pp/full_messages_json.iml index 3900b391..6f8fddf9 100644 --- a/src-protocol-pp/full_messages_json.iml +++ b/src-protocol-pp/full_messages_json.iml @@ -2,27 +2,27 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_messages_json.ml *) +[@@@import "../src-core-pp/base_types_json.iml"] +[@@@import "full_message_tags_json.iml"] +[@@@import "full_admin_enums_json.iml"] +[@@@import "full_admin_messages_json.iml"] +[@@@import "../src-protocol-exts-pp/full_app_messages_json.iml"] +[@@@import "../src-protocol/full_messages.iml"] +[@@@import "../src-core-time-defaults-pp/time_defaults_json.iml"] [@@@program] open Yojson;; -[@@@import "../src-core-pp/base_types_json.iml"] open Base_types_json;; -[@@@import "full_message_tags_json.iml"] open Full_message_tags_json;; -[@@@import "full_admin_enums_json.iml"] open Full_admin_enums_json;; -[@@@import "full_admin_messages_json.iml"] open Full_admin_messages_json;; -[@@@import "../src-protocol-exts-pp/full_app_messages_json.iml"] open Full_app_messages_json;; -[@@@import "../src-protocol/full_messages.iml"] open Full_messages;; -[@@@import "../src-core-time-defaults-pp/timeDefaults_json.iml"] -open TimeDefaults_json;; +open Time_defaults_json;; let assoc_filter_nulls l : json = diff --git a/src-protocol-pp/parse_admin_enums.iml b/src-protocol-pp/parse_admin_enums.iml index aa81b2ba..27a44c18 100644 --- a/src-protocol-pp/parse_admin_enums.iml +++ b/src-protocol-pp/parse_admin_enums.iml @@ -2,13 +2,13 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 parse_admin_enums.ml *) -[@@@program] [@@@import "../src-protocol/full_admin_enums.iml"] +[@@@program] open Full_admin_enums;; diff --git a/src-protocol-pp/parse_admin_messages.iml b/src-protocol-pp/parse_admin_messages.iml index 9fec96cf..6f0eea66 100644 --- a/src-protocol-pp/parse_admin_messages.iml +++ b/src-protocol-pp/parse_admin_messages.iml @@ -2,27 +2,27 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 parse_admin_messages.ml *) -[@@@program] [@@@import "../src-protocol/full_admin_tags.iml"] -open Full_admin_tags;; [@@@import "../src-protocol/full_admin_messages.iml"] -open Full_admin_messages;; [@@@import "../src-core-pp/parser_utils.iml"] -open Parser_utils.Parser;; [@@@import "../src-core-pp/parse_base_types.iml"] -open Parse_base_types;; [@@@import "../src-core-pp/parse_datetime.iml"] -open Parse_datetime;; [@@@import "parse_admin_enums.iml"] -open Parse_admin_enums;; [@@@import "parse_full_tags.iml"] -open Parse_full_tags;; [@@@import "../src-core/datetime.iml"] +[@@@program] +open Full_admin_tags;; +open Full_admin_messages;; +open Parser_utils.Parser;; +open Parse_base_types;; +open Parse_datetime;; +open Parse_admin_enums;; +open Parse_full_tags;; open Datetime;; diff --git a/src-protocol-pp/parse_admin_tags.iml b/src-protocol-pp/parse_admin_tags.iml index a50421d4..f919411f 100644 --- a/src-protocol-pp/parse_admin_tags.iml +++ b/src-protocol-pp/parse_admin_tags.iml @@ -2,13 +2,13 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 parse_admin_tags.ml *) -[@@@program] [@@@import "../src-protocol/full_admin_tags.iml"] +[@@@program] open Full_admin_tags;; diff --git a/src-protocol-pp/parse_full_messages.iml b/src-protocol-pp/parse_full_messages.iml index b0172bd4..8c8916bc 100644 --- a/src-protocol-pp/parse_full_messages.iml +++ b/src-protocol-pp/parse_full_messages.iml @@ -2,26 +2,26 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 parse_full_messages.ml *) -[@@@program] [@@@import "../src-protocol/full_message_tags.iml"] -open Full_message_tags [@@@import "../src-protocol/full_messages.iml"] -open Full_messages [@@@import "../src-core-pp/parser_utils.iml"] -open Parser_utils.Parser [@@@import "../src-core-pp/parse_base_types.iml"] -open Parse_base_types [@@@import "parse_full_tags.iml"] -open Parse_full_tags -[@@@import "../src-core-time-defaults-pp/timeDefaults_parser.iml"] -open TimeDefaults_parser +[@@@import "../src-core-time-defaults-pp/time_defaults_parser.iml"] [@@@import "parse_admin_messages.iml"] [@@@import "../src-protocol-exts-pp/parse_app_messages.iml"] +[@@@program] +open Full_message_tags +open Full_messages +open Parser_utils.Parser +open Parse_base_types +open Parse_full_tags +open Time_defaults_parser let parse_msg_data msg_tag msg = diff --git a/src-protocol-pp/parse_full_tags.iml b/src-protocol-pp/parse_full_tags.iml index 10b8baf5..1fc8b4fe 100644 --- a/src-protocol-pp/parse_full_tags.iml +++ b/src-protocol-pp/parse_full_tags.iml @@ -7,12 +7,12 @@ parse_full_tags.ml *) -[@@@program] [@@@import "../src-protocol/full_message_tags.iml"] -open Full_message_tags;; [@@@import "../src-protocol-exts-pp/parse_app_tags.iml"] -open Parse_app_tags;; [@@@import "parse_admin_tags.iml"] +[@@@program] +open Full_message_tags;; +open Parse_app_tags;; open Parse_admin_tags;; diff --git a/src-protocol-pp/pp_main.iml b/src-protocol-pp/pp_main.iml deleted file mode 100644 index cc8a2e90..00000000 --- a/src-protocol-pp/pp_main.iml +++ /dev/null @@ -1,30 +0,0 @@ -(** - - Aesthetic Integration Limited - Copyright (c) 2014 - 2017 - - Entrypoint to load pretty printers. - - fix_pp_main.ml - -*) -(* -[@@@program] - -open String;; -open Yojson;; - -:load src-protocol/datetime.ml -:load src-protocol/basic_types.ml -:load src-protocol/full_session_core.ml -:load src-protocol/full_admin_messages.ml -:load src-protocol/full_app_messages.ml -:load src-protocol/full_protocol_fields.ml -:load src-protocol/full_messages.ml -:load src/fix_engine.ml -:load src-pp/fix_basics_json.ml -:load src-pp/fix_admin_msg_json.ml -:load src-pp/fix_app_msg_json.ml -:load src-pp/fix_msg_json.ml -:load src-pp/fix_engine_json.ml -*) \ No newline at end of file diff --git a/src-protocol/full_admin_enums.iml b/src-protocol/full_admin_enums.iml index 0eea3d75..556699ec 100644 --- a/src-protocol/full_admin_enums.iml +++ b/src-protocol/full_admin_enums.iml @@ -1,8 +1,7 @@ - (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_admin_enums.ml diff --git a/src-protocol/full_admin_messages.iml b/src-protocol/full_admin_messages.iml index 68dbcfec..e87a19e5 100644 --- a/src-protocol/full_admin_messages.iml +++ b/src-protocol/full_admin_messages.iml @@ -2,18 +2,18 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_admin_messages.ml *) [@@@import "../src-core/datetime.iml"] -open Datetime;; [@@@import "full_admin_enums.iml"] -open Full_admin_enums;; [@@@import "full_admin_tags.iml"] -open Full_admin_tags;; [@@@import "full_message_tags.iml"] +open Datetime;; +open Full_admin_enums;; +open Full_admin_tags;; open Full_message_tags;; (** diff --git a/src-protocol/full_admin_tags.iml b/src-protocol/full_admin_tags.iml index 0e41b198..7fcf8873 100644 --- a/src-protocol/full_admin_tags.iml +++ b/src-protocol/full_admin_tags.iml @@ -1,8 +1,7 @@ - (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_admin_tags.ml diff --git a/src-protocol/full_message_tags.iml b/src-protocol/full_message_tags.iml index 5fe3f7bf..b1fb3260 100644 --- a/src-protocol/full_message_tags.iml +++ b/src-protocol/full_message_tags.iml @@ -1,15 +1,14 @@ - (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_admin_messages.ml *) [@@@import "../src-protocol-exts/full_app_tags.iml"] -open Full_app_tags;; [@@@import "full_admin_tags.iml"] +open Full_app_tags;; open Full_admin_tags;; diff --git a/src-protocol/full_messages.iml b/src-protocol/full_messages.iml index 8d12e09c..c184ebac 100644 --- a/src-protocol/full_messages.iml +++ b/src-protocol/full_messages.iml @@ -2,21 +2,21 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 full_messages.ml *) [@@@import "full_message_tags.iml"] -open Full_message_tags;; [@@@import "full_admin_enums.iml"] -open Full_admin_enums;; [@@@import "full_admin_messages.iml"] -open Full_admin_messages;; [@@@import "../src-protocol-exts/full_app_messages.iml"] +[@@@import "../src-core-time-defaults/time_defaults.iml"] +open Full_message_tags;; +open Full_admin_enums;; +open Full_admin_messages;; open Full_app_messages;; -[@@@import "../src-core-time-defaults/timeDefaults.iml"] -open TimeDefaults;; +open Time_defaults;; (** diff --git a/src-simulation-utils/client_utils.iml b/src-simulation-utils/client_utils.iml index 5593badb..3f2e5cba 100644 --- a/src-simulation-utils/client_utils.iml +++ b/src-simulation-utils/client_utils.iml @@ -7,32 +7,31 @@ client_utils.iml *) -[@@@program] -module J = Yojson.Basic -[@@@require "decoders-yojson"] -module D = Decoders_yojson.Basic.Decode [@@@require "lwt"] [@@@require "lwt.unix"] [@@@require "lwt-zmq"] [@@@require "cmdliner"] -[@@@import "../src-core-time-defaults-pp/timeDefaults_current_time.iml"] +[@@@import "../src-core-time-defaults-pp/time_defaults_current_time.iml"] [@@@import "../src-model/src-types-pp/model_messages_json.iml"] [@@@import "fix_connection.iml"] -[@@@import "../src-core-time-defaults-pp/timeDefaults_json.iml"] +[@@@import "../src-core-time-defaults-pp/time_defaults_json.iml"] [@@@import "../src-model/src-types-pp/json_to_action.iml"] [@@@import "fix_global_state.iml"] +[@@@program] +module J = Yojson.Basic +module D = Decoders_yojson.Basic.Decode let (>>=) = Lwt.(>>=);; -let ctime = TimeDefaults_current_time.get_current_utctimestamp;; +let ctime = Time_defaults_current_time.get_current_utctimestamp;; let zmq_publish socket out msg = let msg = Model_messages_json.json_of_model_msg msg in let rtime = Fix_connection.get_last_received_utctimestamp () in - let ztime = TimeDefaults_current_time.get_current_utctimestamp () in + let ztime = Time_defaults_current_time.get_current_utctimestamp () in let stime = Fix_connection.get_last_received_sendingtime () in - let rtime = rtime |> TimeDefaults_json.utctimestamp_to_json in - let ztime = ztime |> TimeDefaults_json.utctimestamp_to_json in - let stime = stime |> TimeDefaults_json.utctimestamp_to_json in + let rtime = rtime |> Time_defaults_json.utctimestamp_to_json in + let ztime = ztime |> Time_defaults_json.utctimestamp_to_json in + let stime = stime |> Time_defaults_json.utctimestamp_to_json in let tpair = if out then ( "sent_fix" , ztime ) else ( "received_fix" , rtime ) diff --git a/src-simulation-utils/fix_connection.iml b/src-simulation-utils/fix_connection.iml index 58ef9717..e31cba18 100644 --- a/src-simulation-utils/fix_connection.iml +++ b/src-simulation-utils/fix_connection.iml @@ -1,13 +1,11 @@ -[@@@program] -[@@@require "lwt"] -[@@@require "lwt.unix"] -[@@@import "../src-core-time-defaults-pp/timeDefaults_current_time.iml"] +[@@@import "../src-core-time-defaults-pp/time_defaults_current_time.iml"] [@@@import "../src-model/src-types/model_messages.iml"] [@@@import "fix_global_state.iml"] [@@@import "../src/fix_engine_state.iml"] [@@@import "message_stream.iml"] [@@@import "../src-protocol-pp/parse_full_messages.iml"] [@@@import "../src-protocol-pp/encode_full_messages.iml"] +[@@@program] type config = { @@ -32,10 +30,10 @@ let get_fix_thread t = t.fix let get_input_mailbox t = t.mailbox let create_session_msg t = t.initmsg -let last_received_utctimestamp = ref ( (TimeDefaults_current_time.get_current_utctimestamp ()) ) +let last_received_utctimestamp = ref ( (Time_defaults_current_time.get_current_utctimestamp ()) ) let get_last_received_utctimestamp () = ! last_received_utctimestamp -let last_received_sendingtime = ref ( (TimeDefaults_current_time.get_current_utctimestamp ()) ) +let last_received_sendingtime = ref ( (Time_defaults_current_time.get_current_utctimestamp ()) ) let get_last_received_sendingtime () = ! last_received_sendingtime let read_int file = @@ -65,7 +63,7 @@ let make_engine_state session_dir config = ; fe_sender_location_id = config.host_id ; fe_on_behalf_of_comp_id = config.on_behalf_id ; fe_target_comp_id = config.target_id - ; fe_curr_time = TimeDefaults_current_time.get_current_utctimestamp () + ; fe_curr_time = Time_defaults_current_time.get_current_utctimestamp () ; fe_max_num_logons_sent = 10 ; fe_application_up = true ; incoming_seq_num = inseq @@ -77,7 +75,7 @@ let (>>=) = Lwt.(>>=) (** Timechange thread *) let do_timechange mailbox = - let time = TimeDefaults_current_time.get_current_utctimestamp () in + let time = Time_defaults_current_time.get_current_utctimestamp () in let timechange = Fix_engine_state.IncIntMsg_TimeChange time in let timechange = Fix_global_state.Internal_Message timechange in Lwt_mvar.put mailbox timechange @@ -120,7 +118,7 @@ let fix_thread session_dir inch mailbox = let filename = Filename.(concat session_dir "fix.log") in Message_stream.from_channel ~verbose:true inch |> Lwt_stream.iter_s ( fun msg -> - let () = last_received_utctimestamp := (TimeDefaults_current_time.get_current_utctimestamp ()) in + let () = last_received_utctimestamp := (Time_defaults_current_time.get_current_utctimestamp ()) in let str = msg |> List.map (fun (k,v) -> k ^ "=" ^ v) |> String.concat "|" |> fun s -> s ^ "|\n" diff --git a/src-simulation-utils/fix_global_state.iml b/src-simulation-utils/fix_global_state.iml index 96d6ade4..f98ac7e3 100644 --- a/src-simulation-utils/fix_global_state.iml +++ b/src-simulation-utils/fix_global_state.iml @@ -1,4 +1,3 @@ -[@@@program] [@@@require "lwt"] [@@@require "lwt.unix"] [@@@import "../src-protocol/full_messages.iml"] @@ -11,6 +10,7 @@ [@@@import "../src-model/src-conversions/type_converter.iml"] [@@@import "../src-model/src/venue.iml"] [@@@import "../src-core-utils/message_utils.iml"] +[@@@program] let (>>=) = Lwt.(>>=) diff --git a/src-simulation-utils/message_stream.iml b/src-simulation-utils/message_stream.iml index 1462bacd..677b5f37 100644 --- a/src-simulation-utils/message_stream.iml +++ b/src-simulation-utils/message_stream.iml @@ -1,7 +1,6 @@ - -[@@@program] [@@@require "lwt"] [@@@require "lwt.unix"] +[@@@program] let (>>=) = Lwt.(>>=);; let split_into_key_value (spliton : char) ( stream : char Lwt_stream.t ) : (string * string) Lwt_stream.t = diff --git a/src-simulation-utils/server_utils.iml b/src-simulation-utils/server_utils.iml index f267e683..3a129b8f 100644 --- a/src-simulation-utils/server_utils.iml +++ b/src-simulation-utils/server_utils.iml @@ -10,7 +10,7 @@ [@@@program] [@@@require "lwt"] [@@@require "lwt.unix"] -[@@@import "../src-core-time-defaults-pp/timeDefaults_current_time.iml"] +[@@@import "../src-core-time-defaults-pp/time_defaults_current_time.iml"] [@@@import "../src/fix_engine_state.iml"] [@@@import "../src-protocol/full_messages.iml"] [@@@import "../src-protocol-pp/encode_full_messages.iml"] @@ -24,7 +24,7 @@ let engine_state = { init_fix_engine_state with fe_comp_id = "IMANDRA"; fe_target_comp_id = "BANZAI"; - fe_curr_time = TimeDefaults_current_time.get_current_utctimestamp (); + fe_curr_time = Time_defaults_current_time.get_current_utctimestamp (); fe_max_num_logons_sent = 10; fe_application_up = true } ;; @@ -44,7 +44,7 @@ let send_msg outch msg = ;; let do_timechange mailbox = - let time = TimeDefaults_current_time.get_current_utctimestamp () in + let time = Time_defaults_current_time.get_current_utctimestamp () in let timechange = Fix_engine_state.IncIntMsg_TimeChange time in let timechange = Fix_global_state.Internal_Message timechange in Lwt_mvar.put mailbox timechange diff --git a/src-tests-utils/config_parser.iml b/src-tests-utils/config_parser.iml index fda2a02f..e5f1a49b 100644 --- a/src-tests-utils/config_parser.iml +++ b/src-tests-utils/config_parser.iml @@ -1,5 +1,5 @@ -[@@@program] [@@@import "../src-core-pp/parser_utils.iml"] +[@@@program] type action = | Connect | Disconnect diff --git a/src-tests-utils/test_cache_utils.iml b/src-tests-utils/test_cache_utils.iml index da745b8b..350e0b88 100644 --- a/src-tests-utils/test_cache_utils.iml +++ b/src-tests-utils/test_cache_utils.iml @@ -2,23 +2,24 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 test_cache.ml *) -[@@@program] [@@@import "../src-protocol/full_admin_messages.iml"] -open Full_admin_messages [@@@import "../src-protocol/full_messages.iml"] -open Full_messages [@@@import "../src/fix_engine_transitions.iml"] -open Fix_engine_transitions [@@@import "../src/fix_engine_utils.iml"] -open Fix_engine_utils -[@@@import "../src-core-time-defaults/timeDefaults.iml"] -open TimeDefaults +[@@@import "../src-core-time-defaults/time_defaults.iml"] [@@@import "../src-protocol-pp/full_messages_json.iml"] +[@@@program] +open Full_admin_messages +open Full_messages +open Fix_engine_transitions +open Fix_engine_utils +open Time_defaults + diff --git a/src-tests-utils/test_runner_utils.iml b/src-tests-utils/test_runner_utils.iml index 3b340c42..75658bc8 100644 --- a/src-tests-utils/test_runner_utils.iml +++ b/src-tests-utils/test_runner_utils.iml @@ -1,14 +1,10 @@ -[@@@program] -[@@@import "config_parser.iml"] -open Config_parser -[@@@import "../src-core-time-defaults-pp/timeDefaults_current_time.iml"] -open TimeDefaults_current_time -[@@@import "../src-core-time-defaults/timeDefaults.iml"] -open TimeDefaults -[@@@import "../src-core-time-defaults-pp/timeDefaults_parser.iml"] -open TimeDefaults_parser [@@@require "lwt"] [@@@require "lwt.unix"] +[@@@require "cmdliner"] +[@@@import "config_parser.iml"] +[@@@import "../src-core-time-defaults-pp/time_defaults_current_time.iml"] +[@@@import "../src-core-time-defaults/time_defaults.iml"] +[@@@import "../src-core-time-defaults-pp/time_defaults_parser.iml"] [@@@import "../src-core-pp/encode_base_types.iml"] [@@@import "../src-protocol-pp/encode_full_messages.iml"] [@@@import "../src-core-printer/core_printer.iml"] @@ -18,7 +14,11 @@ open TimeDefaults_parser [@@@import "../src-protocol-pp/full_admin_tags_json.iml"] [@@@import "../src-protocol-exts-pp/full_app_tags_json.iml"] [@@@import "../src-simulation-utils/message_stream.iml"] -[@@@require "cmdliner"] +[@@@program] +open Config_parser +open Time_defaults_current_time +open Time_defaults +open Time_defaults_parser let (>>=) = Lwt.(>>=);; diff --git a/src/fix_engine.iml b/src/fix_engine.iml index 032ff48b..e2fc1823 100644 --- a/src/fix_engine.iml +++ b/src/fix_engine.iml @@ -2,21 +2,21 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 - fix_engine.ml + fix_engine.iml *) [@@@import "../src-protocol/full_messages.iml"] -open Full_messages;; [@@@import "fix_engine_state.iml"] -open Fix_engine_state;; [@@@import "fix_engine_utils.iml"] -open Fix_engine_utils;; [@@@import "fix_engine_transitions.iml"] +[@@@import "../src-core-time-defaults/time_defaults.iml"] +open Full_messages;; +open Fix_engine_state;; +open Fix_engine_utils;; open Fix_engine_transitions;; -[@@@import "../src-core-time-defaults/timeDefaults.iml"] -open TimeDefaults;; +open Time_defaults;; (** Process incoming internal transition message. *) let proc_incoming_int_msg ( x, engine : fix_engine_int_inc_msg * fix_engine_state) = diff --git a/src/fix_engine_state.iml b/src/fix_engine_state.iml index 7a8e269a..90c509b0 100644 --- a/src/fix_engine_state.iml +++ b/src/fix_engine_state.iml @@ -2,22 +2,22 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 - fix_engine_state.ml + fix_engine_state.iml *) [@@@import "../src-core/datetime.iml"] -open Datetime;; [@@@import "../src-protocol/full_admin_enums.iml"] -open Full_admin_enums;; [@@@import "../src-protocol-exts/full_app_messages.iml"] -open Full_app_messages;; [@@@import "../src-protocol/full_messages.iml"] +[@@@import "../src-core-time-defaults/time_defaults.iml"] +open Datetime;; +open Full_admin_enums;; +open Full_app_messages;; open Full_messages;; -[@@@import "../src-core-time-defaults/timedefaults.iml"] -open TimeDefaults;; +open Time_defaults;; (** Define set of actions + data for manual intervention by the user. *) type manual_int_data = { diff --git a/src/fix_engine_transitions.iml b/src/fix_engine_transitions.iml index 297f2303..f3294de6 100644 --- a/src/fix_engine_transitions.iml +++ b/src/fix_engine_transitions.iml @@ -2,26 +2,26 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 - fix_engine_transitions.ml + fix_engine_transitions.iml *) [@@@import "../src-core/datetime.iml"] -open Datetime;; [@@@import "../src-protocol/full_admin_enums.iml"] -open Full_admin_enums;; [@@@import "../src-protocol/full_admin_messages.iml"] -open Full_admin_messages;; [@@@import "../src-protocol/full_message_tags.iml"] -open Full_message_tags;; [@@@import "../src-protocol/full_admin_tags.iml"] -open Full_admin_tags;; [@@@import "../src-protocol/full_messages.iml"] -open Full_messages;; [@@@import "fix_engine_state.iml"] -open Fix_engine_state;; [@@@import "fix_engine_utils.iml"] +open Datetime;; +open Full_admin_enums;; +open Full_admin_messages;; +open Full_message_tags;; +open Full_admin_tags;; +open Full_messages;; +open Fix_engine_state;; open Fix_engine_utils;; (** In many abnormal cases we need to send out the Logout messages and diff --git a/src/fix_engine_utils.iml b/src/fix_engine_utils.iml index 01f62b09..fc8ac752 100644 --- a/src/fix_engine_utils.iml +++ b/src/fix_engine_utils.iml @@ -2,32 +2,30 @@ (*** Aesthetic Integration Limited - Copyright (c) 2014 - 2017 + Copyright (c) 2014 - 2019 - fix_engine_utils.ml + fix_engine_utils.iml *) -(* @meta[imandra_ignore] on @end *) [@@@import "../src-core/datetime.iml"] -open Datetime;; [@@@import "../src-protocol/full_admin_enums.iml"] -open Full_admin_enums;; [@@@import "../src-protocol/full_admin_messages.iml"] -open Full_admin_messages;; [@@@import "../src-protocol/full_messages.iml"] -open Full_messages;; [@@@import "../src-protocol/full_message_tags.iml"] -open Full_message_tags;; [@@@import "../src-protocol/full_admin_tags.iml"] -open Full_admin_tags;; [@@@import "fix_engine_state.iml"] -open Fix_engine_state;; -[@@@import "../src-core-time-defaults/timeDefaults.iml"] -open TimeDefaults;; +[@@@import "../src-core-time-defaults/time_defaults.iml"] [@@@import "../src-core-utils/fix_version.iml"] +open Datetime;; +open Full_admin_enums;; +open Full_admin_messages;; +open Full_messages;; +open Full_message_tags;; +open Full_admin_tags;; +open Fix_engine_state;; +open Time_defaults;; open Fix_version;; -(* @meta[imandra_ignore] off @end *) (* Does the message have the right sequence number? *) diff --git a/vgs/base_vgs.iml b/vgs/base_vgs.iml index 02306390..632cb35a 100644 --- a/vgs/base_vgs.iml +++ b/vgs/base_vgs.iml @@ -1,7 +1,7 @@ (** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 Verification goals: base vgs. @@ -9,16 +9,16 @@ *) [@@@import "../src-core/datetime.iml"] -open Datetime;; [@@@import "../src/fix_engine.iml"] -open Fix_engine;; [@@@import "../src/fix_engine_state.iml"] -open Fix_engine_state;; [@@@import "../src/fix_engine_utils.iml"] -open Fix_engine_utils;; [@@@import "../src-protocol/full_admin_messages.iml"] -open Full_admin_messages;; [@@@import "../src-protocol/full_messages.iml"] +open Datetime;; +open Fix_engine;; +open Fix_engine_state;; +open Fix_engine_utils;; +open Full_admin_messages;; open Full_messages;; diff --git a/vgs/datetime_vgs.iml b/vgs/datetime_vgs.iml index bebb106b..3d371681 100644 --- a/vgs/datetime_vgs.iml +++ b/vgs/datetime_vgs.iml @@ -1,8 +1,8 @@ (* Basic Datetime VGs *) [@@@import "../src-core/datetime.iml"] +[@@@import "../src-core-time-defaults/time_defaults.iml"] open Datetime;; -[@@@import "../src-core-time-defaults/timeDefaults.iml"] -open TimeDefaults +open Time_defaults theorem utc_gt_transitive (x,y,z) = utctimestamp_GreaterThan x y diff --git a/vgs/example_min_vg.iml b/vgs/example_min_vg.iml index 010d0c07..ede05733 100644 --- a/vgs/example_min_vg.iml +++ b/vgs/example_min_vg.iml @@ -1,7 +1,8 @@ (* A simple example showing how Imandra counterexamples can be minimized. *) (* First, we try to verify a false VG and extract a counterexample. *) - +[@@@import "../src/fix_engine.iml"] +[@@@import "../src/fix_engine_state.iml"] open Fix_engine open Fix_engine_state (* diff --git a/vgs/heartbeat_vgs.iml b/vgs/heartbeat_vgs.iml index 087a89bc..0fdaab7e 100644 --- a/vgs/heartbeat_vgs.iml +++ b/vgs/heartbeat_vgs.iml @@ -1,7 +1,7 @@ (** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 VGs covering behaviour of Heartbeat message ( Vol 2, page 16 ). @@ -9,19 +9,19 @@ *) [@@@import "../src-core/datetime.iml"] -open Datetime;; [@@@import "../src/fix_engine.iml"] -open Fix_engine;; [@@@import "../src/fix_engine_state.iml"] -open Fix_engine_state;; [@@@import "../src/fix_engine_utils.iml"] -open Fix_engine_utils;; [@@@import "../src-protocol/full_admin_messages.iml"] -open Full_admin_messages;; [@@@import "../src-protocol/full_messages.iml"] +[@@@import "../src-core-time-defaults/time_defaults.iml"] +open Datetime;; +open Fix_engine;; +open Fix_engine_state;; +open Fix_engine_utils;; +open Full_admin_messages;; open Full_messages;; -[@@@import "../src-code-time-defaults/timeDefaults.iml"] -open TimeDefaults;; +open Time_defaults;; (*** *************************************************************************************** *) (** diff --git a/vgs/logon_vgs.iml b/vgs/logon_vgs.iml index 8007fec1..f6d66b40 100644 --- a/vgs/logon_vgs.iml +++ b/vgs/logon_vgs.iml @@ -1,7 +1,7 @@ (** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 VGs covering behaviour of Logon message ( Vol 2, page 6 and 16 ). @@ -9,16 +9,16 @@ *) [@@@import "../src-core/datetime.iml"] -open Datetime;; [@@@import "../src/fix_engine.iml"] -open Fix_engine;; [@@@import "../src/fix_engine_state.iml"] -open Fix_engine_state;; [@@@import "../src-protocol/full_admin_enums.iml"] -open Full_admin_enums;; [@@@import "../src-protocol/full_admin_messages.iml"] -open Full_admin_messages;; [@@@import "../src-protocol/full_messages.iml"] +open Datetime;; +open Fix_engine;; +open Fix_engine_state;; +open Full_admin_enums;; +open Full_admin_messages;; open Full_messages;; (** **************************************************************************************** *) diff --git a/vgs/logout_vgs.iml b/vgs/logout_vgs.iml index a09c3938..731e9375 100644 --- a/vgs/logout_vgs.iml +++ b/vgs/logout_vgs.iml @@ -1,7 +1,7 @@ (** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 VGs covering behaviour of Heartbeat message ( Vol 2, page 25 ). diff --git a/vgs/reject_vgs.iml b/vgs/reject_vgs.iml index 649de5c0..5aa1b119 100644 --- a/vgs/reject_vgs.iml +++ b/vgs/reject_vgs.iml @@ -1,7 +1,7 @@ (** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 VGs covering behaviour of Reject message ( Vol 2 ). @@ -11,14 +11,14 @@ (* open Imandra_pervasives;; *) [@@@import "../src-core/datetime.iml"] -open Datetime;; [@@@import "../src/fix_engine.iml"] -open Fix_engine;; [@@@import "../src/fix_engine_state.iml"] -open Fix_engine_state [@@@import "../src-protocol/full_admin_messages.iml"] -open Full_admin_messages;; [@@@import "../src-protocol/full_messages.iml"] +open Datetime;; +open Fix_engine;; +open Fix_engine_state +open Full_admin_messages;; open Full_messages;; (** **************************************************************************************** *) diff --git a/vgs/seq_num_vgs.iml b/vgs/seq_num_vgs.iml index 335b44b5..fd5930e9 100644 --- a/vgs/seq_num_vgs.iml +++ b/vgs/seq_num_vgs.iml @@ -1,7 +1,7 @@ (** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 The following verification goals were derived from the table on page 9 with description on how messages would be handled. @@ -10,14 +10,14 @@ *) [@@@import "../src-core/datetime.iml"] -open Datetime;; [@@@import "../src/fix_engine.iml"] -open Fix_engine;; [@@@import "../src/fix_engine_state.iml"] -open Fix_engine_state [@@@import "../src-protocol/full_admin_messages.iml"] -open Full_admin_messages;; [@@@import "../src-protocol/full_messages.iml"] +open Datetime;; +open Fix_engine;; +open Fix_engine_state +open Full_admin_messages;; open Full_messages;; (** **************************************************************************************** *) diff --git a/vgs/seqreset_reset_vgs.iml b/vgs/seqreset_reset_vgs.iml index 705cc706..1636fa89 100644 --- a/vgs/seqreset_reset_vgs.iml +++ b/vgs/seqreset_reset_vgs.iml @@ -1,7 +1,7 @@ (** Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Copyright (c) 2014 - 2019 SequenceReset Reset message VGs. @@ -9,14 +9,14 @@ *) [@@@import "../src-core/datetime.iml"] -open Datetime;; [@@@import "../src/fix_engine.iml"] -open Fix_engine;; [@@@import "../src/fix_engine_state.iml"] -open Fix_engine_state [@@@import "../src-protocol/full_admin_messages.iml"] -open Full_admin_messages;; [@@@import "../src-protocol/full_messages.iml"] +open Datetime;; +open Fix_engine;; +open Fix_engine_state +open Full_admin_messages;; open Full_messages;; (** **************************************************************************************** *) From 7e98ed3353c5d6fedb9b44d2f0b4697667102a4e Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Thu, 3 Oct 2019 19:44:09 +0100 Subject: [PATCH 14/19] updating branding --- dash/base_dashes.iml | 2 +- dash/heartbeat_dashes.iml | 2 +- src-core-pp/base_types_json.iml | 4 ++-- src-core-pp/datetime_json.iml | 4 ++-- src-core-pp/encode_base_types.iml | 4 ++-- src-core-pp/encode_datetime.iml | 4 ++-- src-core-pp/parse_base_types.iml | 4 ++-- src-core-pp/parse_datetime.iml | 4 ++-- src-core-pp/parser_utils.iml | 4 ++-- src-core-printer/core_printer.iml | 4 ++-- src-core-utils-pp/current_time.iml | 8 ++++---- src-core-utils-vg/fix_version.iml | 2 +- src-core-utils-vg/message_utils.iml | 2 +- src-core-utils/fix_version.iml | 2 +- src-core-utils/message_utils.iml | 2 +- src-core/datetime.iml | 4 ++-- src-core/imandra_utils.iml | 4 ++-- src-core/numeric.iml | 2 +- src-model/src-conversions/enum_converter.iml | 2 +- .../src-conversions/repeating_groups_converter.iml | 2 +- src-model/src-conversions/type_converter.iml | 2 +- src-model/src-string-factory/model_enum_names.iml | 4 ++-- src-model/src-string-factory/model_tag_names.iml | 4 ++-- src-model/src-string-factory/string_assoc.iml | 4 ++-- src-model/src-string-factory/string_assoc_common.iml | 4 ++-- src-model/src-string-factory/string_checks.iml | 4 ++-- src-model/src-types-pp/json_to_action.iml | 4 ++-- src-model/src-types-pp/json_to_enum.iml | 4 ++-- src-model/src-types-pp/json_to_internal.iml | 2 +- src-model/src-types-pp/json_to_message.iml | 4 ++-- src-model/src-types-pp/json_to_model_state.iml | 4 ++-- src-model/src-types-pp/json_to_model_tag.iml | 2 +- src-model/src-types-pp/json_to_records.iml | 2 +- src-model/src-types-pp/model_actions_json.iml | 4 ++-- src-model/src-types-pp/model_enums_json.iml | 4 ++-- src-model/src-types-pp/model_internals_json.iml | 4 ++-- src-model/src-types-pp/model_messages_json.iml | 4 ++-- src-model/src-types-pp/model_records_json.iml | 2 +- .../src-types-pp/model_repeating_groups_json.iml | 2 +- src-model/src-types-pp/model_state_json.iml | 4 ++-- src-model/src-types-pp/model_tags_json.iml | 4 ++-- src-model/src-types/actions.iml | 2 +- src-model/src-types/model_app_enums.iml | 2 +- src-model/src-types/model_messages.iml | 2 +- src-model/src-types/model_records.iml | 2 +- src-model/src-types/model_repeating_groups.iml | 2 +- src-model/src-types/model_tags.iml | 2 +- src-model/src-types/state.iml | 2 +- src-model/src/act_checks.iml | 2 +- src-model/src/act_process.iml | 2 +- src-model/src/msg_check_fields.iml | 2 +- src-model/src/msg_check_types.iml | 2 +- src-model/src/msg_check_validate.iml | 2 +- src-model/src/msg_defaults.iml | 2 +- src-model/src/msg_process.iml | 2 +- src-model/src/msg_receive.iml | 2 +- src-model/src/msg_reject.iml | 2 +- src-model/src/venue.iml | 2 +- src-protocol-exts-pp-vg/full_app_enums_json.iml | 4 ++-- src-protocol-exts-pp-vg/full_app_messages_json.iml | 4 ++-- src-protocol-exts-pp-vg/full_app_records_json.iml | 4 ++-- src-protocol-exts-pp-vg/full_app_tags_json.iml | 4 ++-- src-protocol-exts-pp-vg/parse_app_enums.iml | 4 ++-- src-protocol-exts-pp-vg/parse_app_messages.iml | 4 ++-- src-protocol-exts-pp-vg/parse_app_records.iml | 4 ++-- src-protocol-exts-pp-vg/parse_app_tags.iml | 4 ++-- src-protocol-exts-pp/encode_app_enums.iml | 4 ++-- src-protocol-exts-pp/encode_app_messages.iml | 4 ++-- src-protocol-exts-pp/encode_app_records.iml | 4 ++-- src-protocol-exts-pp/encode_app_tags.iml | 4 ++-- src-protocol-exts-pp/encode_utils.iml | 4 ++-- src-protocol-exts-pp/full_app_enums_json.iml | 4 ++-- src-protocol-exts-pp/full_app_messages_json.iml | 4 ++-- src-protocol-exts-pp/full_app_records_json.iml | 4 ++-- src-protocol-exts-pp/full_app_tags_json.iml | 4 ++-- src-protocol-exts-pp/json_generator_utils.iml | 4 ++-- src-protocol-exts-pp/parse_app_enums.iml | 4 ++-- src-protocol-exts-pp/parse_app_messages.iml | 4 ++-- src-protocol-exts-pp/parse_app_records.iml | 4 ++-- src-protocol-exts-pp/parse_app_tags.iml | 4 ++-- src-protocol-exts-vg/full_app_enums.iml | 4 ++-- src-protocol-exts-vg/full_app_messages.iml | 2 +- src-protocol-exts-vg/full_app_records.iml | 2 +- src-protocol-exts-vg/full_app_tags.iml | 2 +- src-protocol-exts/full_app_enums.iml | 2 +- src-protocol-exts/full_app_messages.iml | 2 +- src-protocol-exts/full_app_records.iml | 2 +- src-protocol-exts/full_app_tags.iml | 2 +- src-protocol-pp/encode_admin_enums.iml | 4 ++-- src-protocol-pp/encode_admin_messages.iml | 4 ++-- src-protocol-pp/encode_admin_tags.iml | 2 +- src-protocol-pp/encode_full_messages.iml | 4 ++-- src-protocol-pp/encode_full_tags.iml | 4 ++-- src-protocol-pp/fix_engine_json.iml | 4 ++-- src-protocol-pp/full_admin_enums_json.iml | 4 ++-- src-protocol-pp/full_admin_messages_json.iml | 4 ++-- src-protocol-pp/full_admin_tags_json.iml | 4 ++-- src-protocol-pp/full_message_tags_json.iml | 4 ++-- src-protocol-pp/full_messages_json.iml | 4 ++-- src-protocol-pp/parse_admin_enums.iml | 2 +- src-protocol-pp/parse_admin_messages.iml | 4 ++-- src-protocol-pp/parse_admin_tags.iml | 2 +- src-protocol-pp/parse_full_messages.iml | 4 ++-- src-protocol-pp/parse_full_tags.iml | 6 +++--- src-protocol/full_admin_enums.iml | 2 +- src-protocol/full_admin_messages.iml | 2 +- src-protocol/full_admin_tags.iml | 2 +- src-protocol/full_message_tags.iml | 2 +- src-protocol/full_messages.iml | 2 +- src-simulation-utils/client_utils.iml | 8 ++++---- src-simulation-utils/fix_connection.iml | 11 ++++++++++- src-simulation-utils/fix_global_state.iml | 10 +++++++++- src-simulation-utils/message_stream.iml | 9 ++++++++- src-simulation-utils/server_utils.iml | 4 ++-- src-tests-utils/test_cache_utils.iml | 2 +- src-tests-utils/test_runner_utils.iml | 2 +- src/fix_engine.iml | 2 +- src/fix_engine_state.iml | 2 +- src/fix_engine_transitions.iml | 2 +- src/fix_engine_utils.iml | 2 +- vgs/base_vgs.iml | 2 +- vgs/example_min_vg.iml | 2 +- vgs/heartbeat_vgs.iml | 2 +- vgs/logon_vgs.iml | 2 +- vgs/logout_vgs.iml | 4 ++-- vgs/reject_vgs.iml | 2 +- vgs/seq_num_vgs.iml | 2 +- vgs/seqreset_reset_vgs.iml | 2 +- 128 files changed, 222 insertions(+), 198 deletions(-) diff --git a/dash/base_dashes.iml b/dash/base_dashes.iml index aeb5b440..d20539dd 100644 --- a/dash/base_dashes.iml +++ b/dash/base_dashes.iml @@ -1,6 +1,6 @@ (** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2017 Dash version: diff --git a/dash/heartbeat_dashes.iml b/dash/heartbeat_dashes.iml index 82eb1247..1796cfad 100644 --- a/dash/heartbeat_dashes.iml +++ b/dash/heartbeat_dashes.iml @@ -1,6 +1,6 @@ (** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2017 Dash versions of VGs covering behaviour of Heartbeat message ( Vol 2, page 16 ). diff --git a/src-core-pp/base_types_json.iml b/src-core-pp/base_types_json.iml index 92149a75..f6c6784e 100644 --- a/src-core-pp/base_types_json.iml +++ b/src-core-pp/base_types_json.iml @@ -1,7 +1,7 @@ (** JSON printers/parsers for base FIX types. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 base_types_json.iml @@ -257,4 +257,4 @@ let bool_opt_to_json : bool option -> json = function | None -> `Null | Some x -> bool_to_json x ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-core-pp/datetime_json.iml b/src-core-pp/datetime_json.iml index 0cc07ef4..4b40cbd3 100644 --- a/src-core-pp/datetime_json.iml +++ b/src-core-pp/datetime_json.iml @@ -1,7 +1,7 @@ (** JSON printers/parsers for datetime types. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 datetime_json.iml @@ -279,4 +279,4 @@ let monthyear_opt_to_json = function | None -> `Null | Some x -> monthyear_to_json x ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-core-pp/encode_base_types.iml b/src-core-pp/encode_base_types.iml index 26f7740b..48c89d53 100644 --- a/src-core-pp/encode_base_types.iml +++ b/src-core-pp/encode_base_types.iml @@ -1,7 +1,7 @@ (** JSON printers/parsers for base FIX types. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 base_types_json.iml @@ -32,4 +32,4 @@ let encode_bool : bool -> string = function | true -> "Y" | false -> "N" ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-core-pp/encode_datetime.iml b/src-core-pp/encode_datetime.iml index f2bbb5a3..f8b8353a 100644 --- a/src-core-pp/encode_datetime.iml +++ b/src-core-pp/encode_datetime.iml @@ -1,7 +1,7 @@ (** Parsers for datetime types. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 parse_datetime.iml @@ -104,4 +104,4 @@ let encode_Duration (x : fix_duration) : string = (duration_to_seconds x) / (60*60*24) in "D"^(Z.to_string days) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-core-pp/parse_base_types.iml b/src-core-pp/parse_base_types.iml index 1e4442c7..bda203ac 100644 --- a/src-core-pp/parse_base_types.iml +++ b/src-core-pp/parse_base_types.iml @@ -1,7 +1,7 @@ (** Parsers for base types. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 datetime_json.iml @@ -50,4 +50,4 @@ let parse_float (str: string) : Numeric.fix_float_6 option = Some (Float_6 (Z.of_int whole * 1000000 + Z.of_int fraction * pow10 (6 - frlen))) else None ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-core-pp/parse_datetime.iml b/src-core-pp/parse_datetime.iml index 73ffadaa..c4159ba5 100644 --- a/src-core-pp/parse_datetime.iml +++ b/src-core-pp/parse_datetime.iml @@ -1,7 +1,7 @@ (** Parsers for datetime types. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 201 parse_datetime.ml @@ -177,4 +177,4 @@ let parse_Duration (str:string) : fix_duration option = | _,_ -> None) else None ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-core-pp/parser_utils.iml b/src-core-pp/parser_utils.iml index dd2d8a6c..eeadd90b 100644 --- a/src-core-pp/parser_utils.iml +++ b/src-core-pp/parser_utils.iml @@ -1,7 +1,7 @@ (** Various parser utilities. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2017 parser_utils.ml @@ -312,4 +312,4 @@ module Parser = struct end -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-core-printer/core_printer.iml b/src-core-printer/core_printer.iml index 50c8a400..85086ad4 100644 --- a/src-core-printer/core_printer.iml +++ b/src-core-printer/core_printer.iml @@ -1,7 +1,7 @@ (** Printers for core types appearing in messages *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 core_printer.ml @@ -82,4 +82,4 @@ let fix_monthyear_to_string x = let fix_duration_to_string x = encode_Duration x ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-core-utils-pp/current_time.iml b/src-core-utils-pp/current_time.iml index f2202447..c082ba13 100644 --- a/src-core-utils-pp/current_time.iml +++ b/src-core-utils-pp/current_time.iml @@ -1,15 +1,15 @@ (** Current Time functions *) (*** - Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Imandra Inc. + Copyright (c) 2014 - 2019 fiv_verion.ml *) -[@@@program] [@@@import "../src-core/datetime.iml"] +[@@@program] open Datetime let get_current_utctimestamp_milli ?offset:(offset=0) () : fix_utctimestamp_milli = @@ -56,4 +56,4 @@ let get_current_localmktdate () : fix_localmktdate = convert_utctimestamp_milli_localmktdate (get_current_utctimestamp_milli ()) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-core-utils-vg/fix_version.iml b/src-core-utils-vg/fix_version.iml index 2764c8c5..f21f7d81 100644 --- a/src-core-utils-vg/fix_version.iml +++ b/src-core-utils-vg/fix_version.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 fix_utils.iml diff --git a/src-core-utils-vg/message_utils.iml b/src-core-utils-vg/message_utils.iml index 05372719..362bc908 100644 --- a/src-core-utils-vg/message_utils.iml +++ b/src-core-utils-vg/message_utils.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 message_utils.iml diff --git a/src-core-utils/fix_version.iml b/src-core-utils/fix_version.iml index b18f63f5..90925901 100644 --- a/src-core-utils/fix_version.iml +++ b/src-core-utils/fix_version.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 fix_version.iml diff --git a/src-core-utils/message_utils.iml b/src-core-utils/message_utils.iml index 89631a04..67ef7563 100644 --- a/src-core-utils/message_utils.iml +++ b/src-core-utils/message_utils.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 message_utils.iml diff --git a/src-core/datetime.iml b/src-core/datetime.iml index 4a2909ec..e920402b 100644 --- a/src-core/datetime.iml +++ b/src-core/datetime.iml @@ -1,7 +1,7 @@ (** Implementation of the date/time types and operations. *) (** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 datetime.iml @@ -1111,4 +1111,4 @@ let convert_utctimestamp_milli_monthyear (ts:fix_utctimestamp_milli) : (fix_mont monthyear_month = ts.utc_timestamp_month; monthyear_day = Some ts.utc_timestamp_day; monthyear_week = None; -};; \ No newline at end of file +};; diff --git a/src-core/imandra_utils.iml b/src-core/imandra_utils.iml index 3f1a1079..79024001 100644 --- a/src-core/imandra_utils.iml +++ b/src-core/imandra_utils.iml @@ -1,7 +1,7 @@ (** Imandra utilities. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 imandra_utils.iml @@ -10,4 +10,4 @@ let (==>) p q = not (p) || q;; -let (<==>) p q = ((==>) p q) && ((==>) q p);; \ No newline at end of file +let (<==>) p q = ((==>) p q) && ((==>) q p);; diff --git a/src-core/numeric.iml b/src-core/numeric.iml index d1609f3d..a354f024 100644 --- a/src-core/numeric.iml +++ b/src-core/numeric.iml @@ -1,6 +1,6 @@ (** Numeric types and operations. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 numeric.iml *) diff --git a/src-model/src-conversions/enum_converter.iml b/src-model/src-conversions/enum_converter.iml index 24623b88..5fca46a6 100644 --- a/src-model/src-conversions/enum_converter.iml +++ b/src-model/src-conversions/enum_converter.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 enum_converter.iml diff --git a/src-model/src-conversions/repeating_groups_converter.iml b/src-model/src-conversions/repeating_groups_converter.iml index be766e8f..2d2fe7b9 100644 --- a/src-model/src-conversions/repeating_groups_converter.iml +++ b/src-model/src-conversions/repeating_groups_converter.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 repeating_groups_converter.iml diff --git a/src-model/src-conversions/type_converter.iml b/src-model/src-conversions/type_converter.iml index 1c252529..f62516a9 100644 --- a/src-model/src-conversions/type_converter.iml +++ b/src-model/src-conversions/type_converter.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 type_converter.iml diff --git a/src-model/src-string-factory/model_enum_names.iml b/src-model/src-string-factory/model_enum_names.iml index 6103d399..c06725f6 100644 --- a/src-model/src-string-factory/model_enum_names.iml +++ b/src-model/src-string-factory/model_enum_names.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 model_enum_names.iml @@ -184,4 +184,4 @@ let string_to_mod_exectype_opt (d) = | _ -> (None) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-model/src-string-factory/model_tag_names.iml b/src-model/src-string-factory/model_tag_names.iml index 330c4f9d..4cde91cc 100644 --- a/src-model/src-string-factory/model_tag_names.iml +++ b/src-model/src-string-factory/model_tag_names.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 model_tag_names.iml @@ -28,4 +28,4 @@ let tag_to_field (x) = | _ -> None ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-model/src-string-factory/string_assoc.iml b/src-model/src-string-factory/string_assoc.iml index be8b9b15..fa194129 100644 --- a/src-model/src-string-factory/string_assoc.iml +++ b/src-model/src-string-factory/string_assoc.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 string_assoc.iml @@ -36,4 +36,4 @@ module StringAssoc = struct with Not_found -> raise (No_match s) end;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-model/src-string-factory/string_assoc_common.iml b/src-model/src-string-factory/string_assoc_common.iml index 25335d87..be26e710 100644 --- a/src-model/src-string-factory/string_assoc_common.iml +++ b/src-model/src-string-factory/string_assoc_common.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 string_assoc_common.iml @@ -9,4 +9,4 @@ *) [@@@program] let string_pairs = ("Actions.m_action_fix_x","x") :: (("Model_messages.mod_executionreport_data","ExecutionReport") :: (("Model_messages.mod_newordersingle_data","NewOrderSingle") :: (("Actions.mod_f_x_x","x") :: (("Model_messages.mod_f_ExecutionReport_ClOrdID","ClOrdID") :: (("Model_messages.mod_f_ExecutionReport_OrderID","OrderID") :: (("Model_messages.mod_f_ExecutionReport_ExecID","ExecID") :: (("Model_messages.mod_f_ExecutionReport_ExecType","ExecType") :: (("Model_messages.mod_f_ExecutionReport_AvgPx","AvgPx") :: (("Model_messages.mod_f_ExecutionReport_Side","Side") :: (("Model_messages.mod_f_ExecutionReport_LeavesQty","LeavesQty") :: (("Model_messages.mod_f_ExecutionReport_CumQty","CumQty") :: (("Model_messages.mod_f_ExecutionReport_OrdStatus","OrdStatus") :: (("Model_messages.mod_f_ExecutionReport_Instrument_Symbol","Instrument.Symbol") :: (("Model_messages.mod_f_ExecutionReport_Text","Text") :: (("Model_messages.mod_f_NewOrderSingle_ClOrdID","ClOrdID") :: (("Model_messages.mod_f_NewOrderSingle_Side","Side") :: (("Model_messages.mod_f_NewOrderSingle_TransactTime","TransactTime") :: (("Model_messages.mod_f_NewOrderSingle_OrdType","OrdType") :: (("Model_messages.mod_f_NewOrderSingle_Instrument_Symbol","Instrument.Symbol") :: (("Model_app_enums.model_fix_side","Side") :: (("Model_app_enums.model_fix_ordtype","OrdType") :: (("Model_app_enums.model_fix_ordstatus","OrdStatus") :: (("Model_app_enums.model_fix_exectype","ExecType") :: (("Model_app_enums.MOD_FIX_Side_Buy","Side.Buy") :: (("Model_app_enums.MOD_FIX_Side_Sell","Side.Sell") :: (("Model_app_enums.MOD_FIX_Side_BuyMinus","Side.BuyMinus") :: (("Model_app_enums.MOD_FIX_Side_SellPlus","Side.SellPlus") :: (("Model_app_enums.MOD_FIX_Side_SellShort","Side.SellShort") :: (("Model_app_enums.MOD_FIX_Side_SellShortExempt","Side.SellShortExempt") :: (("Model_app_enums.MOD_FIX_Side_Undisclosed","Side.Undisclosed") :: (("Model_app_enums.MOD_FIX_Side_Cross","Side.Cross") :: (("Model_app_enums.MOD_FIX_Side_CrossShort","Side.CrossShort") :: (("Model_app_enums.MOD_FIX_Side_CrossShortExempt","Side.CrossShortExempt") :: (("Model_app_enums.MOD_FIX_Side_AsDefined","Side.AsDefined") :: (("Model_app_enums.MOD_FIX_Side_Opposite","Side.Opposite") :: (("Model_app_enums.MOD_FIX_Side_Subscribe","Side.Subscribe") :: (("Model_app_enums.MOD_FIX_Side_Redeem","Side.Redeem") :: (("Model_app_enums.MOD_FIX_Side_Lend","Side.Lend") :: (("Model_app_enums.MOD_FIX_Side_Borrow","Side.Borrow") :: (("Model_app_enums.MOD_FIX_OrdType_Market","OrdType.Market") :: (("Model_app_enums.MOD_FIX_OrdType_Limit","OrdType.Limit") :: (("Model_app_enums.MOD_FIX_OrdType_Stop","OrdType.Stop") :: (("Model_app_enums.MOD_FIX_OrdType_StopLimit","OrdType.StopLimit") :: (("Model_app_enums.MOD_FIX_OrdType_WithOrWithout","OrdType.WithOrWithout") :: (("Model_app_enums.MOD_FIX_OrdType_LimitOrBetter","OrdType.LimitOrBetter") :: (("Model_app_enums.MOD_FIX_OrdType_LimitWithOrWithout","OrdType.LimitWithOrWithout") :: (("Model_app_enums.MOD_FIX_OrdType_OnBasis","OrdType.OnBasis") :: (("Model_app_enums.MOD_FIX_OrdType_PreviouslyQuoted","OrdType.PreviouslyQuoted") :: (("Model_app_enums.MOD_FIX_OrdType_PreviouslyIndicated","OrdType.PreviouslyIndicated") :: (("Model_app_enums.MOD_FIX_OrdType_ForexSwap","OrdType.ForexSwap") :: (("Model_app_enums.MOD_FIX_OrdType_Funari","OrdType.Funari") :: (("Model_app_enums.MOD_FIX_OrdType_MarketIfTouched","OrdType.MarketIfTouched") :: (("Model_app_enums.MOD_FIX_OrdType_MarketWithLeftOverAsLimit","OrdType.MarketWithLeftOverAsLimit") :: (("Model_app_enums.MOD_FIX_OrdType_PreviousFundValuationPoint","OrdType.PreviousFundValuationPoint") :: (("Model_app_enums.MOD_FIX_OrdType_NextFundValuationPoint","OrdType.NextFundValuationPoint") :: (("Model_app_enums.MOD_FIX_OrdType_Pegged","OrdType.Pegged") :: (("Model_app_enums.MOD_FIX_OrdStatus_New","OrdStatus.New") :: (("Model_app_enums.MOD_FIX_OrdStatus_PartiallyFilled","OrdStatus.PartiallyFilled") :: (("Model_app_enums.MOD_FIX_OrdStatus_Filled","OrdStatus.Filled") :: (("Model_app_enums.MOD_FIX_OrdStatus_DoneForDay","OrdStatus.DoneForDay") :: (("Model_app_enums.MOD_FIX_OrdStatus_Canceled","OrdStatus.Canceled") :: (("Model_app_enums.MOD_FIX_OrdStatus_PendingCancel","OrdStatus.PendingCancel") :: (("Model_app_enums.MOD_FIX_OrdStatus_Stopped","OrdStatus.Stopped") :: (("Model_app_enums.MOD_FIX_OrdStatus_Rejected","OrdStatus.Rejected") :: (("Model_app_enums.MOD_FIX_OrdStatus_Suspended","OrdStatus.Suspended") :: (("Model_app_enums.MOD_FIX_OrdStatus_PendingNew","OrdStatus.PendingNew") :: (("Model_app_enums.MOD_FIX_OrdStatus_Calculated","OrdStatus.Calculated") :: (("Model_app_enums.MOD_FIX_OrdStatus_Expired","OrdStatus.Expired") :: (("Model_app_enums.MOD_FIX_OrdStatus_AcceptedForBidding","OrdStatus.AcceptedForBidding") :: (("Model_app_enums.MOD_FIX_OrdStatus_PendingReplace","OrdStatus.PendingReplace") :: (("Model_app_enums.MOD_FIX_OrdStatus_Replaced","OrdStatus.Replaced") :: (("Model_app_enums.MOD_FIX_ExecType_New","ExecType.New") :: (("Model_app_enums.MOD_FIX_ExecType_DoneForDay","ExecType.DoneForDay") :: (("Model_app_enums.MOD_FIX_ExecType_Canceled","ExecType.Canceled") :: (("Model_app_enums.MOD_FIX_ExecType_Replaced","ExecType.Replaced") :: (("Model_app_enums.MOD_FIX_ExecType_PendingCancel","ExecType.PendingCancel") :: (("Model_app_enums.MOD_FIX_ExecType_Stopped","ExecType.Stopped") :: (("Model_app_enums.MOD_FIX_ExecType_Rejected","ExecType.Rejected") :: (("Model_app_enums.MOD_FIX_ExecType_Suspended","ExecType.Suspended") :: (("Model_app_enums.MOD_FIX_ExecType_PendingNew","ExecType.PendingNew") :: (("Model_app_enums.MOD_FIX_ExecType_Calculated","ExecType.Calculated") :: (("Model_app_enums.MOD_FIX_ExecType_Expired","ExecType.Expired") :: (("Model_app_enums.MOD_FIX_ExecType_Restated","ExecType.Restated") :: (("Model_app_enums.MOD_FIX_ExecType_PendingReplace","ExecType.PendingReplace") :: (("Model_app_enums.MOD_FIX_ExecType_Trade","ExecType.Trade") :: (("Model_app_enums.MOD_FIX_ExecType_TradeCorrect","ExecType.TradeCorrect") :: (("Model_app_enums.MOD_FIX_ExecType_TradeCancel","ExecType.TradeCancel") :: (("Model_app_enums.MOD_FIX_ExecType_OrderStatus","ExecType.OrderStatus") :: (("Model_tags.M_Field_ClOrdID_Tag","ClOrdID") :: (("Model_tags.M_Field_OrderID_Tag","OrderID") :: (("Model_tags.M_Field_ExecID_Tag","ExecID") :: (("Model_tags.M_Field_ExecType_Tag","ExecType") :: (("Model_tags.M_Field_AvgPx_Tag","AvgPx") :: (("Model_tags.M_Field_Side_Tag","Side") :: (("Model_tags.M_Field_LeavesQty_Tag","LeavesQty") :: (("Model_tags.M_Field_CumQty_Tag","CumQty") :: (("Model_tags.M_Field_OrdStatus_Tag","OrdStatus") :: (("Model_tags.M_Field_Symbol_Tag","Symbol") :: (("Model_tags.M_Field_Text_Tag","Text") :: (("Model_tags.M_Msg_ExecutionReport_Tag","ExecutionReport") :: (("Model_tags.M_Field_ClOrdID_Tag","ClOrdID") :: (("Model_tags.M_Field_Side_Tag","Side") :: (("Model_tags.M_Field_TransactTime_Tag","TransactTime") :: (("Model_tags.M_Field_OrdType_Tag","OrdType") :: (("Model_tags.M_Field_Symbol_Tag","Symbol") :: (("Model_tags.M_Msg_NewOrderSingle_Tag","NewOrderSingle") :: []))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-model/src-string-factory/string_checks.iml b/src-model/src-string-factory/string_checks.iml index ed803310..2f0e1706 100644 --- a/src-model/src-string-factory/string_checks.iml +++ b/src-model/src-string-factory/string_checks.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 string_checks.iml @@ -225,4 +225,4 @@ let name_of_msg (x) = | FIX_TL_None -> "Msg:None" ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-model/src-types-pp/json_to_action.iml b/src-model/src-types-pp/json_to_action.iml index 0dcdfd26..ce553c69 100644 --- a/src-model/src-types-pp/json_to_action.iml +++ b/src-model/src-types-pp/json_to_action.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 json_to_action.iml @@ -32,4 +32,4 @@ let fix_action_decoder : fix_action decoder = ) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-model/src-types-pp/json_to_enum.iml b/src-model/src-types-pp/json_to_enum.iml index afa82ac6..e3c2948e 100644 --- a/src-model/src-types-pp/json_to_enum.iml +++ b/src-model/src-types-pp/json_to_enum.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 json_to_enum.iml @@ -47,4 +47,4 @@ let mod_enum_exectype_decoder : model_fix_exectype decoder = ) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-model/src-types-pp/json_to_internal.iml b/src-model/src-types-pp/json_to_internal.iml index 9f005465..ef05a12a 100644 --- a/src-model/src-types-pp/json_to_internal.iml +++ b/src-model/src-types-pp/json_to_internal.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 json_to_internal.iml diff --git a/src-model/src-types-pp/json_to_message.iml b/src-model/src-types-pp/json_to_message.iml index b24f5e47..be0ed7e9 100644 --- a/src-model/src-types-pp/json_to_message.iml +++ b/src-model/src-types-pp/json_to_message.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 json_to_message.iml @@ -86,4 +86,4 @@ let top_level_message_decoder : model_top_level_msg decoder = ) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-model/src-types-pp/json_to_model_state.iml b/src-model/src-types-pp/json_to_model_state.iml index 291df4a8..0aed9812 100644 --- a/src-model/src-types-pp/json_to_model_state.iml +++ b/src-model/src-types-pp/json_to_model_state.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 json_to_model_state.iml @@ -27,4 +27,4 @@ let model_state_decoder : model_state decoder = ) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-model/src-types-pp/json_to_model_tag.iml b/src-model/src-types-pp/json_to_model_tag.iml index 48b5c5f6..b5898e57 100644 --- a/src-model/src-types-pp/json_to_model_tag.iml +++ b/src-model/src-types-pp/json_to_model_tag.iml @@ -1,6 +1,6 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 json_to_model_tag.iml diff --git a/src-model/src-types-pp/json_to_records.iml b/src-model/src-types-pp/json_to_records.iml index 5f97dc70..59df24b0 100644 --- a/src-model/src-types-pp/json_to_records.iml +++ b/src-model/src-types-pp/json_to_records.iml @@ -1,6 +1,6 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 json_to_records.iml diff --git a/src-model/src-types-pp/model_actions_json.iml b/src-model/src-types-pp/model_actions_json.iml index 6e3b18eb..f17beea4 100644 --- a/src-model/src-types-pp/model_actions_json.iml +++ b/src-model/src-types-pp/model_actions_json.iml @@ -1,6 +1,6 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 model_actions_json.iml @@ -26,4 +26,4 @@ let json_of_fix_action (x) : json = | FIX_Action_x x -> (`Assoc (("tag",`String "x") :: (("data",mod_act_x_to_json x) :: []))) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-model/src-types-pp/model_enums_json.iml b/src-model/src-types-pp/model_enums_json.iml index 4ef687af..2606269a 100644 --- a/src-model/src-types-pp/model_enums_json.iml +++ b/src-model/src-types-pp/model_enums_json.iml @@ -1,6 +1,6 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 model_enums_json.iml @@ -54,4 +54,4 @@ let mod_exectype_opt_to_json (d) : json = | Some d -> (mod_exectype_to_json d) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-model/src-types-pp/model_internals_json.iml b/src-model/src-types-pp/model_internals_json.iml index 164b2584..10b5d4b8 100644 --- a/src-model/src-types-pp/model_internals_json.iml +++ b/src-model/src-types-pp/model_internals_json.iml @@ -1,6 +1,6 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 model_internals_json.iml @@ -13,4 +13,4 @@ open State;; let json_of_fix_internals (x : internal_states_types) = `Assoc [] ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-model/src-types-pp/model_messages_json.iml b/src-model/src-types-pp/model_messages_json.iml index 84e56307..9633a363 100644 --- a/src-model/src-types-pp/model_messages_json.iml +++ b/src-model/src-types-pp/model_messages_json.iml @@ -1,6 +1,6 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 model_messages_json.iml @@ -48,4 +48,4 @@ let json_of_top_level_msg (x) : json = | FIX_TL_None -> `Null ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-model/src-types-pp/model_records_json.iml b/src-model/src-types-pp/model_records_json.iml index 7a45373e..dd0fd4d0 100644 --- a/src-model/src-types-pp/model_records_json.iml +++ b/src-model/src-types-pp/model_records_json.iml @@ -1,6 +1,6 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 model_records_json.iml diff --git a/src-model/src-types-pp/model_repeating_groups_json.iml b/src-model/src-types-pp/model_repeating_groups_json.iml index 859ae944..4dc6c187 100644 --- a/src-model/src-types-pp/model_repeating_groups_json.iml +++ b/src-model/src-types-pp/model_repeating_groups_json.iml @@ -1,6 +1,6 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 model_repeating_groups_json.iml diff --git a/src-model/src-types-pp/model_state_json.iml b/src-model/src-types-pp/model_state_json.iml index 71d8fc9d..3eeea2c3 100644 --- a/src-model/src-types-pp/model_state_json.iml +++ b/src-model/src-types-pp/model_state_json.iml @@ -1,6 +1,6 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 model_state_json.iml @@ -23,4 +23,4 @@ let model_state_to_json (m_state) : json = ) :: (("incoming_msg",json_of_top_level_msg m_state.incoming_msg) :: (("outgoing_msgs",`List (List.map (fun y -> json_of_model_msg y ) m_state.outgoing_msgs)) :: []))) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-model/src-types-pp/model_tags_json.iml b/src-model/src-types-pp/model_tags_json.iml index c98b5930..37f18655 100644 --- a/src-model/src-types-pp/model_tags_json.iml +++ b/src-model/src-types-pp/model_tags_json.iml @@ -1,6 +1,6 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 model_tags_json.iml @@ -32,4 +32,4 @@ let json_of_model_field_tag (x : m_field_tag) : json = let json_of_req_field_missing (x : field_missing_data) : json = `Assoc (("m_msg_tag",json_of_model_msg_tag x.field_missing_data_msg) :: (("m_field_tag",json_of_model_field_tag x.field_missing_data_field) :: [])) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-model/src-types/actions.iml b/src-model/src-types/actions.iml index b55dab5c..65ba06da 100644 --- a/src-model/src-types/actions.iml +++ b/src-model/src-types/actions.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 actions.iml diff --git a/src-model/src-types/model_app_enums.iml b/src-model/src-types/model_app_enums.iml index f8f2b645..4d02dd3e 100644 --- a/src-model/src-types/model_app_enums.iml +++ b/src-model/src-types/model_app_enums.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2018 *) +(* Imandra Inc. copyright 2019 *) type model_fix_side = | MOD_FIX_Side_Buy diff --git a/src-model/src-types/model_messages.iml b/src-model/src-types/model_messages.iml index e8e037a9..09286ce6 100644 --- a/src-model/src-types/model_messages.iml +++ b/src-model/src-types/model_messages.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 model_messages.iml diff --git a/src-model/src-types/model_records.iml b/src-model/src-types/model_records.iml index dea05633..9354fb28 100644 --- a/src-model/src-types/model_records.iml +++ b/src-model/src-types/model_records.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 model_records.iml diff --git a/src-model/src-types/model_repeating_groups.iml b/src-model/src-types/model_repeating_groups.iml index 7e30a22d..ede751f5 100644 --- a/src-model/src-types/model_repeating_groups.iml +++ b/src-model/src-types/model_repeating_groups.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 model_repeating_groups.iml diff --git a/src-model/src-types/model_tags.iml b/src-model/src-types/model_tags.iml index 798b0228..1c35d6d0 100644 --- a/src-model/src-types/model_tags.iml +++ b/src-model/src-types/model_tags.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 model_tags.iml diff --git a/src-model/src-types/state.iml b/src-model/src-types/state.iml index 55d353fc..81472e90 100644 --- a/src-model/src-types/state.iml +++ b/src-model/src-types/state.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 state.iml diff --git a/src-model/src/act_checks.iml b/src-model/src/act_checks.iml index ca7733a4..8b5b86a5 100644 --- a/src-model/src/act_checks.iml +++ b/src-model/src/act_checks.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 action_checks.iml diff --git a/src-model/src/act_process.iml b/src-model/src/act_process.iml index ed9576d9..d1f6cc92 100644 --- a/src-model/src/act_process.iml +++ b/src-model/src/act_process.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 act_ptocess.iml diff --git a/src-model/src/msg_check_fields.iml b/src-model/src/msg_check_fields.iml index 6dde336d..25ec942b 100644 --- a/src-model/src/msg_check_fields.iml +++ b/src-model/src/msg_check_fields.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 message_check_fields.iml diff --git a/src-model/src/msg_check_types.iml b/src-model/src/msg_check_types.iml index 18a2cf94..73161959 100644 --- a/src-model/src/msg_check_types.iml +++ b/src-model/src/msg_check_types.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 message_check_fields.iml diff --git a/src-model/src/msg_check_validate.iml b/src-model/src/msg_check_validate.iml index 5ab0587a..4991a407 100644 --- a/src-model/src/msg_check_validate.iml +++ b/src-model/src/msg_check_validate.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 message_check_validate.iml diff --git a/src-model/src/msg_defaults.iml b/src-model/src/msg_defaults.iml index 5943131e..bacb1b63 100644 --- a/src-model/src/msg_defaults.iml +++ b/src-model/src/msg_defaults.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 message_defaults.iml diff --git a/src-model/src/msg_process.iml b/src-model/src/msg_process.iml index 7b2cc724..70647d5e 100644 --- a/src-model/src/msg_process.iml +++ b/src-model/src/msg_process.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 message_process.iml diff --git a/src-model/src/msg_receive.iml b/src-model/src/msg_receive.iml index 467cb4b5..c78a01c9 100644 --- a/src-model/src/msg_receive.iml +++ b/src-model/src/msg_receive.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 message_receive.iml diff --git a/src-model/src/msg_reject.iml b/src-model/src/msg_reject.iml index f994b3a0..bc511bbc 100644 --- a/src-model/src/msg_reject.iml +++ b/src-model/src/msg_reject.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 message_reject.iml diff --git a/src-model/src/venue.iml b/src-model/src/venue.iml index c8cc5278..411e756e 100644 --- a/src-model/src/venue.iml +++ b/src-model/src/venue.iml @@ -1,7 +1,7 @@ (** Time defaults for a particular FIX implementation *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 venue.iml diff --git a/src-protocol-exts-pp-vg/full_app_enums_json.iml b/src-protocol-exts-pp-vg/full_app_enums_json.iml index 48d524e6..90282f9f 100644 --- a/src-protocol-exts-pp-vg/full_app_enums_json.iml +++ b/src-protocol-exts-pp-vg/full_app_enums_json.iml @@ -1,7 +1,7 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_app_enums_json.ml @@ -325,4 +325,4 @@ let exchange_opt_to_json ( d ) : json = | None -> (`Null) | Some d -> (exchange_to_json d) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp-vg/full_app_messages_json.iml b/src-protocol-exts-pp-vg/full_app_messages_json.iml index 80c4be00..9a7aa092 100644 --- a/src-protocol-exts-pp-vg/full_app_messages_json.iml +++ b/src-protocol-exts-pp-vg/full_app_messages_json.iml @@ -1,7 +1,7 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_app_messages_json.ml @@ -112,4 +112,4 @@ let full_app_msg_to_json x : json = match x with | Full_Msg_CancelReject x -> `Assoc [( "CancelReject" , full_msg_cancel_reject_to_json x )] ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp-vg/full_app_records_json.iml b/src-protocol-exts-pp-vg/full_app_records_json.iml index 620c4054..8e11dcc3 100644 --- a/src-protocol-exts-pp-vg/full_app_records_json.iml +++ b/src-protocol-exts-pp-vg/full_app_records_json.iml @@ -1,7 +1,7 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_app_records_json.ml @@ -34,4 +34,4 @@ let instrument_to_json x : json = ; ( "SymbolSfx" , string_opt_to_json x.f_Instrument_SymbolSfx ) ] ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp-vg/full_app_tags_json.iml b/src-protocol-exts-pp-vg/full_app_tags_json.iml index 3e433557..77ad34f4 100644 --- a/src-protocol-exts-pp-vg/full_app_tags_json.iml +++ b/src-protocol-exts-pp-vg/full_app_tags_json.iml @@ -1,7 +1,7 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_app_tags_json.ml @@ -64,4 +64,4 @@ let full_app_msg_tag_opt_to_json = function None -> `Null | Some x -> full_app_ let full_app_field_tag_to_json x : json = `String ( full_app_field_tag_to_string x ) ;; let full_app_field_tag_opt_to_json = function None -> `Null | Some x -> full_app_field_tag_to_json x ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp-vg/parse_app_enums.iml b/src-protocol-exts-pp-vg/parse_app_enums.iml index b1705280..a882fda7 100644 --- a/src-protocol-exts-pp-vg/parse_app_enums.iml +++ b/src-protocol-exts-pp-vg/parse_app_enums.iml @@ -1,7 +1,7 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 parse_app_enums.ml @@ -270,4 +270,4 @@ let parse_Exchange ( str ) = | "SHSC" -> (Some (FIX_Exchange_SHSC)) | _ -> (None) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp-vg/parse_app_messages.iml b/src-protocol-exts-pp-vg/parse_app_messages.iml index 8b6c00d3..7cbd9355 100644 --- a/src-protocol-exts-pp-vg/parse_app_messages.iml +++ b/src-protocol-exts-pp-vg/parse_app_messages.iml @@ -1,7 +1,7 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 parse_app_messages.ml @@ -175,4 +175,4 @@ let parse_app_msg_data msg_tag msg = | Full_Msg_NewOrderSingle_Tag -> ((>>=) (fst (parse_msg_new_order_single_data msg)) (fun f -> ParseSuccess (Full_Msg_NewOrderSingle f))) | Full_Msg_CancelReject_Tag -> ((>>=) (fst (parse_msg_cancel_reject_data msg)) (fun f -> ParseSuccess (Full_Msg_CancelReject f))) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp-vg/parse_app_records.iml b/src-protocol-exts-pp-vg/parse_app_records.iml index 12578815..d190b146 100644 --- a/src-protocol-exts-pp-vg/parse_app_records.iml +++ b/src-protocol-exts-pp-vg/parse_app_records.iml @@ -1,7 +1,7 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 parse_app_records.ml @@ -34,4 +34,4 @@ let parse_Instrument msg = ; f_Instrument_SymbolSfx },msg) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp-vg/parse_app_tags.iml b/src-protocol-exts-pp-vg/parse_app_tags.iml index 8b9f0844..1ba8aa14 100644 --- a/src-protocol-exts-pp-vg/parse_app_tags.iml +++ b/src-protocol-exts-pp-vg/parse_app_tags.iml @@ -1,7 +1,7 @@ (** Parser for application tags. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 parse_app_tags.ml @@ -52,4 +52,4 @@ let parse_app_field_tag = function | "65" -> Some Full_Msg_SymbolSfx_Tag | _ -> None ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp/encode_app_enums.iml b/src-protocol-exts-pp/encode_app_enums.iml index e5caf313..bb24f6d8 100644 --- a/src-protocol-exts-pp/encode_app_enums.iml +++ b/src-protocol-exts-pp/encode_app_enums.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) [@@@import "../src-protocol-exts/full_app_enums.iml"] [@@@import "../src-core-pp/parser_utils.iml"] [@@@program] @@ -2855,4 +2855,4 @@ let encode_Exchange (d) = | FIX_Exchange_SHSC -> "SHSC" ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp/encode_app_messages.iml b/src-protocol-exts-pp/encode_app_messages.iml index 328c34a1..1a4148fb 100644 --- a/src-protocol-exts-pp/encode_app_messages.iml +++ b/src-protocol-exts-pp/encode_app_messages.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) [@@@import "encode_app_enums.iml"] [@@@import "encode_app_records.iml"] [@@@import "../src-core-pp/encode_base_types.iml"] @@ -27,4 +27,4 @@ let encode_app_msg_data (msg) = | FIX_Full_Msg_NewOrderSingle msg -> (encode_NewOrderSingle msg) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp/encode_app_records.iml b/src-protocol-exts-pp/encode_app_records.iml index eb9ce50e..f2ec6bb9 100644 --- a/src-protocol-exts-pp/encode_app_records.iml +++ b/src-protocol-exts-pp/encode_app_records.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) [@@@import "encode_app_enums.iml"] [@@@import "../src-core-pp/encode_base_types.iml"] [@@@import "../src-core-pp/encode_datetime.iml"] @@ -430,4 +430,4 @@ let encode_SettlInstGrp (msg) = let encode_AllocGrp (msg) = (@) (encode_SettlInstructionsData msg.f_AllocGrp_SettlInstructionsData) ((@) (encode_CommissionData msg.f_AllocGrp_CommissionData) ((@) (("79",enc_opt encode_string msg.f_AllocGrp_AllocAccount) :: (("661",enc_opt encode_int msg.f_AllocGrp_AllocAcctIDSource) :: (("573",enc_opt encode_MatchStatus msg.f_AllocGrp_MatchStatus) :: (("366",enc_opt encode_float_6 msg.f_AllocGrp_AllocPrice) :: (("80",enc_opt encode_float_6 msg.f_AllocGrp_AllocQty) :: (("467",enc_opt encode_string msg.f_AllocGrp_IndividualAllocID) :: (("81",enc_opt encode_ProcessCode msg.f_AllocGrp_ProcessCode) :: (("208",enc_opt encode_NotifyBrokerOfCredit msg.f_AllocGrp_NotifyBrokerOfCredit) :: (("209",enc_opt encode_AllocHandlInst msg.f_AllocGrp_AllocHandlInst) :: (("161",enc_opt encode_string msg.f_AllocGrp_AllocText) :: (("360",enc_opt encode_int msg.f_AllocGrp_EncodedAllocTextLen) :: (("361",enc_opt encode_string msg.f_AllocGrp_EncodedAllocText) :: (("153",enc_opt encode_float_6 msg.f_AllocGrp_AllocAvgPx) :: (("154",enc_opt encode_float_6 msg.f_AllocGrp_AllocNetMoney) :: (("119",enc_opt encode_float_6 msg.f_AllocGrp_SettlCurrAmt) :: (("737",enc_opt encode_float_6 msg.f_AllocGrp_AllocSettlCurrAmt) :: (("120",enc_opt encode_Currency msg.f_AllocGrp_SettlCurrency) :: (("736",enc_opt encode_Currency msg.f_AllocGrp_AllocSettlCurrency) :: (("155",enc_opt encode_float msg.f_AllocGrp_SettlCurrFxRate) :: (("156",enc_opt encode_SettlCurrFxRateCalc msg.f_AllocGrp_SettlCurrFxRateCalc) :: (("742",enc_opt encode_float_6 msg.f_AllocGrp_AllocAccruedInterestAmt) :: (("741",enc_opt encode_float_6 msg.f_AllocGrp_AllocInterestAtMaturity) :: (("780",enc_opt encode_AllocSettlInstType msg.f_AllocGrp_AllocSettlInstType) :: []))))))))))))))))))))))) ((@) (enc_repeat encode_ClrInstGrp "576" msg.f_AllocGrp_ClrInstGrp) ((@) (enc_repeat encode_MiscFeesGrp "136" msg.f_AllocGrp_MiscFeesGrp) ((@) (enc_repeat encode_NestedParties "539" msg.f_AllocGrp_NestedParties) []))))) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp/encode_app_tags.iml b/src-protocol-exts-pp/encode_app_tags.iml index 809b3cb4..b3644f11 100644 --- a/src-protocol-exts-pp/encode_app_tags.iml +++ b/src-protocol-exts-pp/encode_app_tags.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) [@@@import "../src-protocol-exts/full_app_tags.iml"] [@@@program] open Full_app_tags;; @@ -387,4 +387,4 @@ let encode_app_field_tag (d) = | Full_Field_NoTradingSessions_Tag -> ("386") ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp/encode_utils.iml b/src-protocol-exts-pp/encode_utils.iml index d679e19e..efbc3b5d 100644 --- a/src-protocol-exts-pp/encode_utils.iml +++ b/src-protocol-exts-pp/encode_utils.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) [@@@import "../src-core-pp/encode_base_types.iml"] [@@@import "../src-core-pp/encode_datetime.iml"] [@@@program] @@ -23,4 +23,4 @@ let enc_repeat (f) (tag) (lst) = ) []))) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp/full_app_enums_json.iml b/src-protocol-exts-pp/full_app_enums_json.iml index c00262d5..7024a5f8 100644 --- a/src-protocol-exts-pp/full_app_enums_json.iml +++ b/src-protocol-exts-pp/full_app_enums_json.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) [@@@import "../src-protocol-exts/full_app_enums.iml"] [@@@program] open Full_app_enums;; @@ -5514,4 +5514,4 @@ let exchange_opt_to_json (d) : json = | Some d -> (exchange_to_json d) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp/full_app_messages_json.iml b/src-protocol-exts-pp/full_app_messages_json.iml index 55880ab2..fa303145 100644 --- a/src-protocol-exts-pp/full_app_messages_json.iml +++ b/src-protocol-exts-pp/full_app_messages_json.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) [@@@import "../src-core-pp/base_types_json.iml"] [@@@import "../src-core-pp/datetime_json.iml"] [@@@import "full_app_enums_json.iml"] @@ -28,4 +28,4 @@ let full_app_msg_to_json (x) : json = | FIX_Full_Msg_NewOrderSingle x -> (`Assoc (("NewOrderSingle",newordersingle_to_json x) :: [])) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp/full_app_records_json.iml b/src-protocol-exts-pp/full_app_records_json.iml index 67f6409a..1e9b8042 100644 --- a/src-protocol-exts-pp/full_app_records_json.iml +++ b/src-protocol-exts-pp/full_app_records_json.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) [@@@import "../src-core-pp/base_types_json.iml"] [@@@import "../src-core-pp/datetime_json.iml"] [@@@import "full_app_enums_json.iml"] @@ -851,4 +851,4 @@ let allocgrp_to_string (d) = let allocgrp_to_json (x) : json = assoc_filter_nulls (("CommissionData",commissiondata_to_json x.f_AllocGrp_CommissionData) :: (("SettlInstructionsData",settlinstructionsdata_to_json x.f_AllocGrp_SettlInstructionsData) :: (("NoAllocs",int_opt_to_json x.f_AllocGrp_NoAllocs) :: (("AllocAccount",string_opt_to_json x.f_AllocGrp_AllocAccount) :: (("AllocAcctIDSource",int_opt_to_json x.f_AllocGrp_AllocAcctIDSource) :: (("MatchStatus",matchstatus_opt_to_json x.f_AllocGrp_MatchStatus) :: (("AllocPrice",float_6_opt_to_json x.f_AllocGrp_AllocPrice) :: (("AllocQty",float_6_opt_to_json x.f_AllocGrp_AllocQty) :: (("IndividualAllocID",string_opt_to_json x.f_AllocGrp_IndividualAllocID) :: (("ProcessCode",processcode_opt_to_json x.f_AllocGrp_ProcessCode) :: (("NotifyBrokerOfCredit",notifybrokerofcredit_opt_to_json x.f_AllocGrp_NotifyBrokerOfCredit) :: (("AllocHandlInst",allochandlinst_opt_to_json x.f_AllocGrp_AllocHandlInst) :: (("AllocText",string_opt_to_json x.f_AllocGrp_AllocText) :: (("EncodedAllocTextLen",int_opt_to_json x.f_AllocGrp_EncodedAllocTextLen) :: (("EncodedAllocText",string_opt_to_json x.f_AllocGrp_EncodedAllocText) :: (("AllocAvgPx",float_6_opt_to_json x.f_AllocGrp_AllocAvgPx) :: (("AllocNetMoney",float_6_opt_to_json x.f_AllocGrp_AllocNetMoney) :: (("SettlCurrAmt",float_6_opt_to_json x.f_AllocGrp_SettlCurrAmt) :: (("AllocSettlCurrAmt",float_6_opt_to_json x.f_AllocGrp_AllocSettlCurrAmt) :: (("SettlCurrency",currency_opt_to_json x.f_AllocGrp_SettlCurrency) :: (("AllocSettlCurrency",currency_opt_to_json x.f_AllocGrp_AllocSettlCurrency) :: (("SettlCurrFxRate",float_opt_to_json x.f_AllocGrp_SettlCurrFxRate) :: (("SettlCurrFxRateCalc",settlcurrfxratecalc_opt_to_json x.f_AllocGrp_SettlCurrFxRateCalc) :: (("AllocAccruedInterestAmt",float_6_opt_to_json x.f_AllocGrp_AllocAccruedInterestAmt) :: (("AllocInterestAtMaturity",float_6_opt_to_json x.f_AllocGrp_AllocInterestAtMaturity) :: (("AllocSettlInstType",allocsettlinsttype_opt_to_json x.f_AllocGrp_AllocSettlInstType) :: (("NestedParties",rg_for_json nestedparties_to_json x.f_AllocGrp_NestedParties) :: (("MiscFeesGrp",rg_for_json miscfeesgrp_to_json x.f_AllocGrp_MiscFeesGrp) :: (("ClrInstGrp",rg_for_json clrinstgrp_to_json x.f_AllocGrp_ClrInstGrp) :: []))))))))))))))))))))))))))))) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp/full_app_tags_json.iml b/src-protocol-exts-pp/full_app_tags_json.iml index 1b4494a4..ae37bb35 100644 --- a/src-protocol-exts-pp/full_app_tags_json.iml +++ b/src-protocol-exts-pp/full_app_tags_json.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) [@@@import "../src-protocol-exts/full_app_tags.iml"] [@@@program] open Full_app_tags;; @@ -410,4 +410,4 @@ let full_app_field_tag_opt_to_json (tag) : json = | Some tag -> (full_app_field_tag_to_json tag) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp/json_generator_utils.iml b/src-protocol-exts-pp/json_generator_utils.iml index 486d6188..591839cb 100644 --- a/src-protocol-exts-pp/json_generator_utils.iml +++ b/src-protocol-exts-pp/json_generator_utils.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) [@@@program] open Yojson;; @@ -13,4 +13,4 @@ let rg_for_json (f) (lst) : json = | lst -> (`List (List.map f lst)) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp/parse_app_enums.iml b/src-protocol-exts-pp/parse_app_enums.iml index 3534e39b..261c7e05 100644 --- a/src-protocol-exts-pp/parse_app_enums.iml +++ b/src-protocol-exts-pp/parse_app_enums.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) [@@@import "../src-protocol-exts/full_app_enums.iml"] [@@@import "../src-core-pp/parser_utils.iml"] [@@@program] @@ -3195,4 +3195,4 @@ let parse_Exchange (str) = | _ -> (None) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp/parse_app_messages.iml b/src-protocol-exts-pp/parse_app_messages.iml index 5e45f3f3..1a4ed5d1 100644 --- a/src-protocol-exts-pp/parse_app_messages.iml +++ b/src-protocol-exts-pp/parse_app_messages.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) [@@@import "../src-protocol-exts/full_app_messages.iml"] [@@@import "../src-protocol-exts/full_app_tags.iml"] [@@@import "parse_app_enums.iml"] @@ -463,4 +463,4 @@ let parse_app_msg_data (msg_tag) (msg) = )) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp/parse_app_records.iml b/src-protocol-exts-pp/parse_app_records.iml index cd57067e..46004e39 100644 --- a/src-protocol-exts-pp/parse_app_records.iml +++ b/src-protocol-exts-pp/parse_app_records.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) [@@@import "../src-protocol-exts/full_app_records.iml"] [@@@import "parse_app_enums.iml"] [@@@import "../src-core-pp/parse_base_types.iml"] @@ -2679,4 +2679,4 @@ let parse_AllocGrp (msg) = ) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-pp/parse_app_tags.iml b/src-protocol-exts-pp/parse_app_tags.iml index cb55c24e..3522e628 100644 --- a/src-protocol-exts-pp/parse_app_tags.iml +++ b/src-protocol-exts-pp/parse_app_tags.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) [@@@import "../src-protocol-exts/full_app_tags.iml"] [@@@program] open Full_app_tags;; @@ -389,4 +389,4 @@ let parse_app_field_tag (tag) = | _ -> (None) ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-exts-vg/full_app_enums.iml b/src-protocol-exts-vg/full_app_enums.iml index f50c9a7d..bae17c85 100644 --- a/src-protocol-exts-vg/full_app_enums.iml +++ b/src-protocol-exts-vg/full_app_enums.iml @@ -1,7 +1,7 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_app_enums.ml @@ -265,4 +265,4 @@ type fix_exchange = | FIX_Exchange_XJAS | FIX_Exchange_XSHG | FIX_Exchange_SHSC -;; \ No newline at end of file +;; diff --git a/src-protocol-exts-vg/full_app_messages.iml b/src-protocol-exts-vg/full_app_messages.iml index c44758ff..2f159603 100644 --- a/src-protocol-exts-vg/full_app_messages.iml +++ b/src-protocol-exts-vg/full_app_messages.iml @@ -1,7 +1,7 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_app_messages.ml diff --git a/src-protocol-exts-vg/full_app_records.iml b/src-protocol-exts-vg/full_app_records.iml index 7f9593f8..f8a8f4c8 100644 --- a/src-protocol-exts-vg/full_app_records.iml +++ b/src-protocol-exts-vg/full_app_records.iml @@ -1,7 +1,7 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_app_records.ml diff --git a/src-protocol-exts-vg/full_app_tags.iml b/src-protocol-exts-vg/full_app_tags.iml index 34dfd871..40c6d6c8 100644 --- a/src-protocol-exts-vg/full_app_tags.iml +++ b/src-protocol-exts-vg/full_app_tags.iml @@ -1,7 +1,7 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_app_tags.ml diff --git a/src-protocol-exts/full_app_enums.iml b/src-protocol-exts/full_app_enums.iml index 558e0399..3a7ad026 100644 --- a/src-protocol-exts/full_app_enums.iml +++ b/src-protocol-exts/full_app_enums.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) type fix_week = | FIX_week_noweek diff --git a/src-protocol-exts/full_app_messages.iml b/src-protocol-exts/full_app_messages.iml index 0f04180b..83c463c3 100644 --- a/src-protocol-exts/full_app_messages.iml +++ b/src-protocol-exts/full_app_messages.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) [@@@import "../src-core/datetime.iml"] [@@@import "full_app_enums.iml"] [@@@import "full_app_records.iml"] diff --git a/src-protocol-exts/full_app_records.iml b/src-protocol-exts/full_app_records.iml index 4f0e40ee..10987ddb 100644 --- a/src-protocol-exts/full_app_records.iml +++ b/src-protocol-exts/full_app_records.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) [@@@import "../src-core/datetime.iml"] [@@@import "full_app_enums.iml"] [@@@import "../src-core/numeric.iml"] diff --git a/src-protocol-exts/full_app_tags.iml b/src-protocol-exts/full_app_tags.iml index f7412813..2045711c 100644 --- a/src-protocol-exts/full_app_tags.iml +++ b/src-protocol-exts/full_app_tags.iml @@ -1,4 +1,4 @@ -(* Aesthetic Integration copyright 2019 *) +(* Imandra Inc. copyright 2019 *) type full_app_msg_tag = | Full_Msg_ExecutionReport_Tag diff --git a/src-protocol-pp/encode_admin_enums.iml b/src-protocol-pp/encode_admin_enums.iml index 65472e26..cc396ed8 100644 --- a/src-protocol-pp/encode_admin_enums.iml +++ b/src-protocol-pp/encode_admin_enums.iml @@ -1,7 +1,7 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 parse_admin_enums.ml @@ -71,4 +71,4 @@ let encode_MsgDirection ( d ) = | FIX_MsgDirection_Receive -> "R" ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-pp/encode_admin_messages.iml b/src-protocol-pp/encode_admin_messages.iml index bbd7add1..ce322bca 100644 --- a/src-protocol-pp/encode_admin_messages.iml +++ b/src-protocol-pp/encode_admin_messages.iml @@ -1,7 +1,7 @@ (** Parse full administrative messages. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 parse_admin_messages.ml @@ -117,4 +117,4 @@ let encode_admin_msg_data msg = | Full_Msg_Logon msg -> encode_msg_logon_data msg | Full_Msg_Business_Reject msg -> encode_msg_business_reject_data msg ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-pp/encode_admin_tags.iml b/src-protocol-pp/encode_admin_tags.iml index 3658e5f4..a9a7af1d 100644 --- a/src-protocol-pp/encode_admin_tags.iml +++ b/src-protocol-pp/encode_admin_tags.iml @@ -1,7 +1,7 @@ (** Parse full administrative tags. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 parse_admin_tags.ml diff --git a/src-protocol-pp/encode_full_messages.iml b/src-protocol-pp/encode_full_messages.iml index 6f2b97e9..57bc5f3e 100644 --- a/src-protocol-pp/encode_full_messages.iml +++ b/src-protocol-pp/encode_full_messages.iml @@ -1,7 +1,7 @@ (** Parser for full administrative messages. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 parse_full_messages.ml @@ -117,4 +117,4 @@ let encode_full_valid_msg x = |> List.map ( fun(k,v) -> k^"="^v ) |> List.fold_left ( fun a s -> a ^ s ^ "\001" ) "" ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-pp/encode_full_tags.iml b/src-protocol-pp/encode_full_tags.iml index 7683aa3a..5dbe5379 100644 --- a/src-protocol-pp/encode_full_tags.iml +++ b/src-protocol-pp/encode_full_tags.iml @@ -1,7 +1,7 @@ (** Parser for full message tags. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 parse_full_tags.ml @@ -28,4 +28,4 @@ let encode_full_field_tag tag = | Full_Admin_Field_Tag tag -> encode_admin_field_tag tag | Full_App_Field_Tag tag -> encode_app_field_tag tag ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-pp/fix_engine_json.iml b/src-protocol-pp/fix_engine_json.iml index afc5fe61..ab366833 100644 --- a/src-protocol-pp/fix_engine_json.iml +++ b/src-protocol-pp/fix_engine_json.iml @@ -1,7 +1,7 @@ (** JSON printers for engine model state. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 fix_engine_json.ml @@ -101,4 +101,4 @@ let engine_state_to_str s = let print_states states = String.concat "\n" (List.map engine_state_to_str states) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-pp/full_admin_enums_json.iml b/src-protocol-pp/full_admin_enums_json.iml index 68d01758..2ecb7c55 100644 --- a/src-protocol-pp/full_admin_enums_json.iml +++ b/src-protocol-pp/full_admin_enums_json.iml @@ -1,7 +1,7 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_admin_enums_json.ml @@ -108,4 +108,4 @@ let encryption_method_opt_to_json = function None -> `Null | Some x -> encr (** *) let msgdirection_opt_to_json = function None -> `Null | Some x -> msgdirection_to_json x ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-pp/full_admin_messages_json.iml b/src-protocol-pp/full_admin_messages_json.iml index 4853d3c9..861104d6 100644 --- a/src-protocol-pp/full_admin_messages_json.iml +++ b/src-protocol-pp/full_admin_messages_json.iml @@ -1,7 +1,7 @@ (** Full messages administrative JSON printers. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_admin_messages_json.ml @@ -120,4 +120,4 @@ let full_admin_msg_to_json x : json = match x with | Full_Msg_Sequence_Reset x -> `Assoc [ ( "Sequence_Reset" , full_msg_sequence_reset_to_json x ) ] | Full_Msg_Test_Request x -> `Assoc [ ( "Test_Request" , full_msg_test_request_to_json x ) ] ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-pp/full_admin_tags_json.iml b/src-protocol-pp/full_admin_tags_json.iml index bbc0faf0..da395237 100644 --- a/src-protocol-pp/full_admin_tags_json.iml +++ b/src-protocol-pp/full_admin_tags_json.iml @@ -1,7 +1,7 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_admin_tags_json.ml @@ -89,4 +89,4 @@ let full_admin_msg_tag_opt_to_json = function None -> `Null | Some x -> full_adm let full_admin_field_tag_to_json x : json = `String (full_admin_field_tag_to_string x );; let full_admin_field_tag_opt_to_json = function None -> `Null | Some x -> full_admin_field_tag_to_json x ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-pp/full_message_tags_json.iml b/src-protocol-pp/full_message_tags_json.iml index 4e1580d1..7d85b78d 100644 --- a/src-protocol-pp/full_message_tags_json.iml +++ b/src-protocol-pp/full_message_tags_json.iml @@ -1,7 +1,7 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_message_tags_json.ml @@ -38,4 +38,4 @@ let full_field_tag_opt_to_json = function | None -> `Null | Some x -> full_field_tag_to_json x ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-pp/full_messages_json.iml b/src-protocol-pp/full_messages_json.iml index 6f8fddf9..81edbdf5 100644 --- a/src-protocol-pp/full_messages_json.iml +++ b/src-protocol-pp/full_messages_json.iml @@ -1,7 +1,7 @@ (** Implementation of the 'full' FIX messages. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_messages_json.ml @@ -120,4 +120,4 @@ let full_top_level_msg_opt_to_json = function | None -> `Null | Some x -> full_top_level_msg_to_json x ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-pp/parse_admin_enums.iml b/src-protocol-pp/parse_admin_enums.iml index 27a44c18..b87f5511 100644 --- a/src-protocol-pp/parse_admin_enums.iml +++ b/src-protocol-pp/parse_admin_enums.iml @@ -1,7 +1,7 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 parse_admin_enums.ml diff --git a/src-protocol-pp/parse_admin_messages.iml b/src-protocol-pp/parse_admin_messages.iml index 6f0eea66..74a5ec4b 100644 --- a/src-protocol-pp/parse_admin_messages.iml +++ b/src-protocol-pp/parse_admin_messages.iml @@ -1,7 +1,7 @@ (** Parse full administrative messages. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 parse_admin_messages.ml @@ -175,4 +175,4 @@ let parse_admin_msg_data msg_tag msg = | Full_Msg_Logon_Tag -> parse_msg_logon_data msg >>= fun x -> ParseSuccess ( Full_Msg_Logon x ) | Full_Msg_Business_Reject_Tag -> parse_msg_business_reject_data msg >>= fun x -> ParseSuccess ( Full_Msg_Business_Reject x ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-pp/parse_admin_tags.iml b/src-protocol-pp/parse_admin_tags.iml index f919411f..e6d7a895 100644 --- a/src-protocol-pp/parse_admin_tags.iml +++ b/src-protocol-pp/parse_admin_tags.iml @@ -1,7 +1,7 @@ (** Parse full administrative tags. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 parse_admin_tags.ml diff --git a/src-protocol-pp/parse_full_messages.iml b/src-protocol-pp/parse_full_messages.iml index 8c8916bc..2f7941cc 100644 --- a/src-protocol-pp/parse_full_messages.iml +++ b/src-protocol-pp/parse_full_messages.iml @@ -1,7 +1,7 @@ (** Parser for full administrative messages. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 parse_full_messages.ml @@ -217,4 +217,4 @@ let parse_top_level_msg msg = | RepeatingGroupOutOfOrder tagstr -> make_session_reject Full_admin_enums.RepeatingGroupFieldsOutOfOrder tagstr msg | EmptyValue tag -> make_session_reject Full_admin_enums.TagSecifiedWithoutAValue tag msg ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol-pp/parse_full_tags.iml b/src-protocol-pp/parse_full_tags.iml index 1fc8b4fe..cfaf1b9f 100644 --- a/src-protocol-pp/parse_full_tags.iml +++ b/src-protocol-pp/parse_full_tags.iml @@ -1,8 +1,8 @@ (** Parser for full message tags. *) (*** - Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Imandra Inc. + Copyright (c) 2014 - 2019 parse_full_tags.ml @@ -36,4 +36,4 @@ let parse_full_field_tag str = | None -> None end ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-protocol/full_admin_enums.iml b/src-protocol/full_admin_enums.iml index 556699ec..1928f0c5 100644 --- a/src-protocol/full_admin_enums.iml +++ b/src-protocol/full_admin_enums.iml @@ -1,6 +1,6 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_admin_enums.ml diff --git a/src-protocol/full_admin_messages.iml b/src-protocol/full_admin_messages.iml index e87a19e5..6362a701 100644 --- a/src-protocol/full_admin_messages.iml +++ b/src-protocol/full_admin_messages.iml @@ -1,7 +1,7 @@ (** Full messages - administrative. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_admin_messages.ml diff --git a/src-protocol/full_admin_tags.iml b/src-protocol/full_admin_tags.iml index 7fcf8873..8747352e 100644 --- a/src-protocol/full_admin_tags.iml +++ b/src-protocol/full_admin_tags.iml @@ -1,6 +1,6 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_admin_tags.ml diff --git a/src-protocol/full_message_tags.iml b/src-protocol/full_message_tags.iml index b1fb3260..05cdb861 100644 --- a/src-protocol/full_message_tags.iml +++ b/src-protocol/full_message_tags.iml @@ -1,6 +1,6 @@ (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_admin_messages.ml diff --git a/src-protocol/full_messages.iml b/src-protocol/full_messages.iml index c184ebac..d2918bb8 100644 --- a/src-protocol/full_messages.iml +++ b/src-protocol/full_messages.iml @@ -1,7 +1,7 @@ (** Implementation of the 'full' FIX messages. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 full_messages.ml diff --git a/src-simulation-utils/client_utils.iml b/src-simulation-utils/client_utils.iml index 3f2e5cba..2f77433b 100644 --- a/src-simulation-utils/client_utils.iml +++ b/src-simulation-utils/client_utils.iml @@ -1,8 +1,8 @@ (** FIX 4.4 engine client implementation. *) (*** - Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Imandra Inc. + Copyright (c) 2014 - 2019 client_utils.iml @@ -102,7 +102,7 @@ let run_client fixhost fixport config zmqpub zmqrep = let addr = Caml_unix.( ADDR_INET( addr , fixport ) ) in let () = [ "(********* FIX Engine Client *********)"; - "(********* (c)Copyright Aesthetic Integration Limited., 2014 - 2018 *********)\n"; + "(********* (c)Copyright Imandra Inc.., 2014 - 2019 *********)\n"; Printf.sprintf " - FIX client connecting to %s:%d" fixhost fixport; Printf.sprintf " - FIX session %s -> %s" config.Fix_connection.comp_id config.Fix_connection.target_id; Printf.sprintf " - Internal messages are published on ZMQ socket %s" zmqpub; @@ -125,4 +125,4 @@ let mkconfig compid hostid targetid reset = } ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-simulation-utils/fix_connection.iml b/src-simulation-utils/fix_connection.iml index e31cba18..2731de48 100644 --- a/src-simulation-utils/fix_connection.iml +++ b/src-simulation-utils/fix_connection.iml @@ -1,3 +1,12 @@ +(*** + + Imandra Inc. + Copyright (c) 2014 - 2019 + + fix_connection.iml + +*) + [@@@import "../src-core-time-defaults-pp/time_defaults_current_time.iml"] [@@@import "../src-model/src-types/model_messages.iml"] [@@@import "fix_global_state.iml"] @@ -171,4 +180,4 @@ let create config (inch, outch) = initmsg = initmsg } ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-simulation-utils/fix_global_state.iml b/src-simulation-utils/fix_global_state.iml index f98ac7e3..b8e265ad 100644 --- a/src-simulation-utils/fix_global_state.iml +++ b/src-simulation-utils/fix_global_state.iml @@ -1,3 +1,11 @@ +(*** + + Imandra Inc. + Copyright (c) 2014 - 2019 + + fix_global_state.iml + +*) [@@@require "lwt"] [@@@require "lwt.unix"] [@@@import "../src-protocol/full_messages.iml"] @@ -165,4 +173,4 @@ let start ?pub:(pub_callback=None) init_engine init_model fix_callback = } in ( state.incoming , main_loop state ) ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src-simulation-utils/message_stream.iml b/src-simulation-utils/message_stream.iml index 677b5f37..df1329fb 100644 --- a/src-simulation-utils/message_stream.iml +++ b/src-simulation-utils/message_stream.iml @@ -1,4 +1,11 @@ -[@@@require "lwt"] +(*** + + Imandra Inc. + Copyright (c) 2014 - 2019 + + message_stream.iml + +*)[@@@require "lwt"] [@@@require "lwt.unix"] [@@@program] let (>>=) = Lwt.(>>=);; diff --git a/src-simulation-utils/server_utils.iml b/src-simulation-utils/server_utils.iml index 3a129b8f..394c8455 100644 --- a/src-simulation-utils/server_utils.iml +++ b/src-simulation-utils/server_utils.iml @@ -1,8 +1,8 @@ (** FIX 4.4 engine server implementation. *) (*** - Aesthetic Integration Limited - Copyright (c) 2014 - 2018 + Imandra Inc. + Copyright (c) 2014 - 2019 server_utils.iml diff --git a/src-tests-utils/test_cache_utils.iml b/src-tests-utils/test_cache_utils.iml index 350e0b88..5d1b5e3f 100644 --- a/src-tests-utils/test_cache_utils.iml +++ b/src-tests-utils/test_cache_utils.iml @@ -1,7 +1,7 @@ (** Tests for caching logic. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 test_cache.ml diff --git a/src-tests-utils/test_runner_utils.iml b/src-tests-utils/test_runner_utils.iml index 75658bc8..7fc729ce 100644 --- a/src-tests-utils/test_runner_utils.iml +++ b/src-tests-utils/test_runner_utils.iml @@ -192,4 +192,4 @@ let def_reader filename = end |> Lwt_main.run ;; -[@@@logic] \ No newline at end of file +[@@@logic] diff --git a/src/fix_engine.iml b/src/fix_engine.iml index e2fc1823..73f34eee 100644 --- a/src/fix_engine.iml +++ b/src/fix_engine.iml @@ -1,7 +1,7 @@ (** FIX 4.4 engine top level transition functions and one_step *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 fix_engine.iml diff --git a/src/fix_engine_state.iml b/src/fix_engine_state.iml index 90c509b0..48fc328a 100644 --- a/src/fix_engine_state.iml +++ b/src/fix_engine_state.iml @@ -1,7 +1,7 @@ (** FIX 4.4 engine state type. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 fix_engine_state.iml diff --git a/src/fix_engine_transitions.iml b/src/fix_engine_transitions.iml index f3294de6..f05b6700 100644 --- a/src/fix_engine_transitions.iml +++ b/src/fix_engine_transitions.iml @@ -1,7 +1,7 @@ (** FIX 4.4 engine transition functions. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 fix_engine_transitions.iml diff --git a/src/fix_engine_utils.iml b/src/fix_engine_utils.iml index fc8ac752..12bea6e3 100644 --- a/src/fix_engine_utils.iml +++ b/src/fix_engine_utils.iml @@ -1,7 +1,7 @@ (** FIX 4.4 engine utility functions. *) (*** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 fix_engine_utils.iml diff --git a/vgs/base_vgs.iml b/vgs/base_vgs.iml index 632cb35a..59549edd 100644 --- a/vgs/base_vgs.iml +++ b/vgs/base_vgs.iml @@ -1,6 +1,6 @@ (** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 Verification goals: base vgs. diff --git a/vgs/example_min_vg.iml b/vgs/example_min_vg.iml index ede05733..ad19d528 100644 --- a/vgs/example_min_vg.iml +++ b/vgs/example_min_vg.iml @@ -5,7 +5,7 @@ [@@@import "../src/fix_engine_state.iml"] open Fix_engine open Fix_engine_state -(* +(* verify ( fun (state : fix_engine_state) -> let incoming_biz_rejected = match state.incoming_fix_msg with diff --git a/vgs/heartbeat_vgs.iml b/vgs/heartbeat_vgs.iml index 0fdaab7e..d6a29968 100644 --- a/vgs/heartbeat_vgs.iml +++ b/vgs/heartbeat_vgs.iml @@ -1,6 +1,6 @@ (** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 VGs covering behaviour of Heartbeat message ( Vol 2, page 16 ). diff --git a/vgs/logon_vgs.iml b/vgs/logon_vgs.iml index f6d66b40..d51c79d2 100644 --- a/vgs/logon_vgs.iml +++ b/vgs/logon_vgs.iml @@ -1,6 +1,6 @@ (** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 VGs covering behaviour of Logon message ( Vol 2, page 6 and 16 ). diff --git a/vgs/logout_vgs.iml b/vgs/logout_vgs.iml index 731e9375..5d8d6e0a 100644 --- a/vgs/logout_vgs.iml +++ b/vgs/logout_vgs.iml @@ -1,6 +1,6 @@ (** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 VGs covering behaviour of Heartbeat message ( Vol 2, page 25 ). @@ -77,4 +77,4 @@ verify (fun (engine : fix_engine_state ) -> (** VG.3.4 *) verify ( fun (engine : fix_engine_state ) -> true) -;; \ No newline at end of file +;; diff --git a/vgs/reject_vgs.iml b/vgs/reject_vgs.iml index 5aa1b119..6969a15d 100644 --- a/vgs/reject_vgs.iml +++ b/vgs/reject_vgs.iml @@ -1,6 +1,6 @@ (** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 VGs covering behaviour of Reject message ( Vol 2 ). diff --git a/vgs/seq_num_vgs.iml b/vgs/seq_num_vgs.iml index fd5930e9..081fc541 100644 --- a/vgs/seq_num_vgs.iml +++ b/vgs/seq_num_vgs.iml @@ -1,6 +1,6 @@ (** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 The following verification goals were derived from the table diff --git a/vgs/seqreset_reset_vgs.iml b/vgs/seqreset_reset_vgs.iml index 1636fa89..65d264bf 100644 --- a/vgs/seqreset_reset_vgs.iml +++ b/vgs/seqreset_reset_vgs.iml @@ -1,6 +1,6 @@ (** - Aesthetic Integration Limited + Imandra Inc. Copyright (c) 2014 - 2019 SequenceReset Reset message VGs. From 2210a89a247d46626e0a121955d940b121f6c51f Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Thu, 3 Oct 2019 20:00:28 +0100 Subject: [PATCH 15/19] increasing wercker timeout --- wercker.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wercker.yml b/wercker.yml index 87a5c285..cc28532e 100644 --- a/wercker.yml +++ b/wercker.yml @@ -1,14 +1,14 @@ +no-response-timeout: 60 build: box: id: ocaml/opam2 tag: debian-9-ocaml-4.06 entrypoint: /usr/bin/sudo -u root --preserve-env opam config exec -- cmd: /bin/bash - + command-timeout: 60 steps: - script: - name: dune make - command-timeout: 60 + name: dune make code: | set -ex apt-get update && apt-get install -y libgmp-dev zlib1g-dev From 4ae012c9fd4a51f56e6d851fcdfd6518fc1b84b1 Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Thu, 3 Oct 2019 20:02:55 +0100 Subject: [PATCH 16/19] increasing wercker timeout --- wercker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wercker.yml b/wercker.yml index cc28532e..e7d8bdea 100644 --- a/wercker.yml +++ b/wercker.yml @@ -1,11 +1,11 @@ no-response-timeout: 60 +command-timeout: 60 build: box: id: ocaml/opam2 tag: debian-9-ocaml-4.06 entrypoint: /usr/bin/sudo -u root --preserve-env opam config exec -- cmd: /bin/bash - command-timeout: 60 steps: - script: name: dune make From a6570a3bae721ee9fb0d658222db61bb82251883 Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Thu, 3 Oct 2019 20:21:22 +0100 Subject: [PATCH 17/19] updating renamed files to include renamed time defaults etc --- .../time_defaults_current_time.iml | 18 ++++++ .../time_defaults_json.iml | 21 +++++++ .../time_defaults_parser.iml | 17 ++++++ .../time_defaults_pp.iml | 17 ++++++ src-core-time-defaults/time_defaults.iml | 58 +++++++++++++++++++ .../repeating_group_consistency_checks.iml | 9 +++ 6 files changed, 140 insertions(+) create mode 100644 src-core-time-defaults-pp/time_defaults_current_time.iml create mode 100644 src-core-time-defaults-pp/time_defaults_json.iml create mode 100644 src-core-time-defaults-pp/time_defaults_parser.iml create mode 100644 src-core-time-defaults-pp/time_defaults_pp.iml create mode 100644 src-core-time-defaults/time_defaults.iml create mode 100644 src-model/src/repeating_group_consistency_checks.iml diff --git a/src-core-time-defaults-pp/time_defaults_current_time.iml b/src-core-time-defaults-pp/time_defaults_current_time.iml new file mode 100644 index 00000000..f70526df --- /dev/null +++ b/src-core-time-defaults-pp/time_defaults_current_time.iml @@ -0,0 +1,18 @@ +(** Time defaults for a particular FIX implementation *) +(*** + + Imandra Inc. + Copyright (c) 2014 - 2019 + + time_defaults_current_time.iml + +*) +[@@@import "../src-core-utils-pp/current_time.iml"] +[@@@program] +open Current_time;; + +let get_current_utctimestamp = get_current_utctimestamp_milli;; + +let get_current_utctimeonly = get_current_utctimeonly_milli;; + +[@@@logic] diff --git a/src-core-time-defaults-pp/time_defaults_json.iml b/src-core-time-defaults-pp/time_defaults_json.iml new file mode 100644 index 00000000..fa81798d --- /dev/null +++ b/src-core-time-defaults-pp/time_defaults_json.iml @@ -0,0 +1,21 @@ +(** Time defaults for a particular FIX implementation *) +(*** + + Imandra Inc. + Copyright (c) 2014 - 2019 + + time_defaults_json.iml + +*) +[@@@import "../src-core-pp/datetime_json.iml"] +[@@@program] +open Datetime_json;; + +let utctimestamp_to_json = utctimestamp_milli_to_json;; + +let utctimestamp_opt_to_json = utctimestamp_milli_opt_to_json;; + +let utctimeonly_to_json = utctimeonly_milli_to_json;; + +let utctimeonly_opt_to_json = utctimeonly_milli_opt_to_json;; +[@@@logic] diff --git a/src-core-time-defaults-pp/time_defaults_parser.iml b/src-core-time-defaults-pp/time_defaults_parser.iml new file mode 100644 index 00000000..4949cfd6 --- /dev/null +++ b/src-core-time-defaults-pp/time_defaults_parser.iml @@ -0,0 +1,17 @@ +(** Time defaults for a particular FIX implementation *) +(*** + + Imandra Inc. + Copyright (c) 2014 - 2019 + + time_defaults_parser.iml + +*) +[@@@import "../src-core-pp/parse_datetime.iml"] +[@@@program] +open Parse_datetime;; + +let parse_UTCTimestamp = parse_UTCTimestamp_milli;; + +let parse_UTCTimeOnly = parse_UTCTimeOnly_milli;; +[@@@logic] diff --git a/src-core-time-defaults-pp/time_defaults_pp.iml b/src-core-time-defaults-pp/time_defaults_pp.iml new file mode 100644 index 00000000..24f2d288 --- /dev/null +++ b/src-core-time-defaults-pp/time_defaults_pp.iml @@ -0,0 +1,17 @@ +(** Time defaults for a particular FIX implementation *) +(*** + + Imandra Inc. + Copyright (c) 2014 - 2019 + + time_defaults_pp.iml + +*) +[@@@program] +[@@@import "../src-core-pp/encode_datetime.iml"] +open Encode_datetime;; + +let encode_UTCTimestamp = encode_UTCTimestamp_milli;; + +let encode_UTCTimeOnly = encode_UTCTimeOnly_milli;; +[@@@logic] diff --git a/src-core-time-defaults/time_defaults.iml b/src-core-time-defaults/time_defaults.iml new file mode 100644 index 00000000..b4b4be88 --- /dev/null +++ b/src-core-time-defaults/time_defaults.iml @@ -0,0 +1,58 @@ +(** Time defaults for a particular FIX implementation *) +(*** + + Imandra Inc. + Copyright (c) 2014 - 2019 + + time_defaults.iml + +*) +[@@@import "../src-core/datetime.iml"] +open Datetime;; + +type milli_micro = + | Milli + | Micro +;; + +let default_time_precision = Milli;; + +type fix_utctimestamp = fix_utctimestamp_milli +;; + +let make_utctimestamp = make_utctimestamp_milli;; + +let is_valid_utctimestamp = is_valid_utctimestamp_milli;; + +let utctimestamp_Equal = utctimestamp_Equal_milli_milli;; + +let utctimestamp_GreaterThan = utctimestamp_GreaterThan_milli_milli;; + +let utctimestamp_GreaterThanEqual = utctimestamp_GreaterThanEqual_milli_milli;; + +let utctimestamp_LessThan = utctimestamp_LessThan_milli_milli;; + +let utctimestamp_LessThanEqual = utctimestamp_LessThanEqual_milli_milli;; + +let normalise_utctimestamp = normalise_utctimestamp_milli;; + +type fix_utctimeonly = fix_utctimeonly_milli +;; + +let make_utctimeonly = make_utctimeonly_milli;; + +let is_valid_utctimeonly = is_valid_utctimeonly_milli;; + +let utctimeonly_Equal = utctimeonly_Equal_milli_milli;; + +let utctimeonly_GreaterThan = utctimeonly_GreaterThan_milli_milli;; + +let utctimeonly_GreaterThanEqual = utctimeonly_GreaterThanEqual_milli_milli;; + +let utctimeonly_LessThan = utctimeonly_LessThan_milli_milli;; + +let utctimeonly_LessThanEqual = utctimeonly_LessThanEqual_milli_milli;; + +let normalise_utctimeonly = normalise_utctimeonly_milli;; + +let utctimestamp_duration_Add = utctimestamp_milli_duration_Add;; diff --git a/src-model/src/repeating_group_consistency_checks.iml b/src-model/src/repeating_group_consistency_checks.iml new file mode 100644 index 00000000..fff343c1 --- /dev/null +++ b/src-model/src/repeating_group_consistency_checks.iml @@ -0,0 +1,9 @@ +(** Time defaults for a particular FIX implementation *) +(*** + + Imandra Inc. + Copyright (c) 2014 - 2019 + + repeating_group_consistency_checks.iml + +*) From 2f91c963e8a8719f523c5f955a4ed4a2337feb15 Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Thu, 3 Oct 2019 20:29:42 +0100 Subject: [PATCH 18/19] wercker --- fix-engine.opam | 2 ++ wercker.yml | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/fix-engine.opam b/fix-engine.opam index 6b64763b..9d4aa0e6 100644 --- a/fix-engine.opam +++ b/fix-engine.opam @@ -16,4 +16,6 @@ depends: [ "lwt-zmq" "yojson" "zmq" + "decoders" + "decoders-yojson" ] diff --git a/wercker.yml b/wercker.yml index e7d8bdea..bb788ed2 100644 --- a/wercker.yml +++ b/wercker.yml @@ -15,9 +15,8 @@ build: export OPAMROOT=/home/opam/.opam opam repo set-url default https://opam.ocaml.org opam update - opam install dune decoders-yojson decoders - make opam1-setup curl -s "https://storage.googleapis.com/imandra-installer/install.sh" > /home/opam/install.sh + opam exec --switch=/usr/local/var/imandra -- make opam1-setup echo -e "/usr/local/bin\n" | sh /home/opam/install.sh -n export PATH=/usr/local/bin/:$PATH - make + opam exec --switch=/usr/local/var/imandra -- make From 21af87b533aeaceb34dbb1de7e61b345c852875b Mon Sep 17 00:00:00 2001 From: Ewen Maclean Date: Thu, 3 Oct 2019 20:33:01 +0100 Subject: [PATCH 19/19] wercker --- wercker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wercker.yml b/wercker.yml index bb788ed2..0e1bad9a 100644 --- a/wercker.yml +++ b/wercker.yml @@ -15,8 +15,8 @@ build: export OPAMROOT=/home/opam/.opam opam repo set-url default https://opam.ocaml.org opam update - curl -s "https://storage.googleapis.com/imandra-installer/install.sh" > /home/opam/install.sh - opam exec --switch=/usr/local/var/imandra -- make opam1-setup + curl -s "https://storage.googleapis.com/imandra-installer/install.sh" > /home/opam/install.sh echo -e "/usr/local/bin\n" | sh /home/opam/install.sh -n + opam exec --switch=/usr/local/var/imandra -- make opam1-setup export PATH=/usr/local/bin/:$PATH opam exec --switch=/usr/local/var/imandra -- make