From 0cf4c9ccc9be3eb5874a546b696ab4cdc3e8b303 Mon Sep 17 00:00:00 2001 From: Olga Vrousgou Date: Wed, 6 Oct 2021 17:08:05 -0400 Subject: [PATCH 1/4] Update vw submodule --- ext_libs/vowpal_wabbit | 2 +- external_parser/joiners/example_joiner.cc | 34 +++++---- .../joiners/multistep_example_joiner.cc | 10 +-- .../joiners/multistep_example_joiner.h | 2 +- external_parser/parse_example_binary.cc | 72 +++++++++---------- external_parser/parse_example_binary.h | 22 +++--- external_parser/parse_example_converter.cc | 7 +- external_parser/parse_example_converter.h | 2 +- external_parser/parse_example_external.cc | 4 +- external_parser/parse_example_external.h | 8 ++- external_parser/unit_tests/test_common.cc | 26 +++---- .../unit_tests/test_log_converter.cc | 2 +- external_parser/unit_tests/test_metrics.cc | 3 +- external_parser/unit_tests/test_skip_learn.cc | 4 +- .../unit_tests/test_vw_binary_parser.cc | 64 ++++++++--------- .../unit_tests/test_vw_external_parser.cc | 36 +++++----- .../utility/apim_http_authorization.cc | 2 - rlclientlib/vw_model/safe_vw.cc | 16 ++--- 18 files changed, 161 insertions(+), 155 deletions(-) diff --git a/ext_libs/vowpal_wabbit b/ext_libs/vowpal_wabbit index 16e53227a..6a5f1f3b7 160000 --- a/ext_libs/vowpal_wabbit +++ b/ext_libs/vowpal_wabbit @@ -1 +1 @@ -Subproject commit 16e53227adc35e107e8cfada5de99b55992754b8 +Subproject commit 6a5f1f3b790cd37530fae4ec436f5c76683d5b27 diff --git a/external_parser/joiners/example_joiner.cc b/external_parser/joiners/example_joiner.cc index 4228a682d..db089ab16 100644 --- a/external_parser/joiners/example_joiner.cc +++ b/external_parser/joiners/example_joiner.cc @@ -237,8 +237,9 @@ bool example_joiner::process_interaction(const v2::Event &event, metadata.payload_type() == v2::PayloadType_Slates) { const v2::MultiSlotEvent *multislot = nullptr; if (!typed_event::process_compression( - event.payload()->data(), event.payload()->size(), metadata, multislot, - _detached_buffer) || multislot == nullptr) { + event.payload()->data(), event.payload()->size(), metadata, + multislot, _detached_buffer) || + multislot == nullptr) { return false; } @@ -253,7 +254,8 @@ bool example_joiner::process_interaction(const v2::Event &event, je = typed_event::event_processor::fill_in_joined_event( *multislot, metadata, enqueued_time_utc, - typed_event::event_processor::get_context(*multislot)); + typed_event::event_processor::get_context( + *multislot)); } else if (metadata.payload_type() == v2::PayloadType_CA) { const v2::CaEvent *ca = nullptr; if (!typed_event::process_compression( @@ -286,13 +288,13 @@ bool example_joiner::process_interaction(const v2::Event &event, std::string context(je.context); try { if (_vw->audit || _vw->hash_inv) { - VW::template read_line_json( - *_vw, examples, const_cast(context.c_str()), + VW::template read_line_json_s( + *_vw, examples, const_cast(context.c_str()), context.size(), reinterpret_cast(&VW::get_unused_example), _vw, &_dedup_cache.dedup_examples); } else { - VW::template read_line_json( - *_vw, examples, const_cast(context.c_str()), + VW::template read_line_json_s( + *_vw, examples, const_cast(context.c_str()), context.size(), reinterpret_cast(&VW::get_unused_example), _vw, &_dedup_cache.dedup_examples); } @@ -386,15 +388,15 @@ bool example_joiner::process_dedup(const v2::Event &event, try { if (_vw->audit || _vw->hash_inv) { - VW::template read_line_json( + VW::template read_line_json_s( *_vw, examples, const_cast(dedup->values()->Get(i)->c_str()), - get_or_create_example_f, this); + dedup->values()->Get(i)->size(), get_or_create_example_f, this); } else { - VW::template read_line_json( + VW::template read_line_json_s( *_vw, examples, const_cast(dedup->values()->Get(i)->c_str()), - get_or_create_example_f, this); + dedup->values()->Get(i)->size(), get_or_create_example_f, this); } } catch (VW::vw_exception &e) { VW::io::logger::log_error("JSON parsing during dedup processing failed " @@ -460,7 +462,8 @@ bool example_joiner::process_joined(v_array &examples) { if (!je->is_joined_event_learnable()) { _joiner_metrics.number_of_skipped_events++; } else { - _joiner_metrics.sum_cost_original += -1. * je->get_sum_original_reward(); + _joiner_metrics.sum_cost_original += + -1. * je->get_sum_original_reward(); if (_joiner_metrics.first_event_id.empty()) { _joiner_metrics.first_event_id = std::move(je->interaction_metadata.event_id); @@ -539,7 +542,8 @@ void example_joiner::persist_metrics() { _vw->example_parser->metrics->NumberOfSkippedEvents = _joiner_metrics.number_of_skipped_events; - _vw->example_parser->metrics->DsjsonSumCostOriginal = _joiner_metrics.sum_cost_original; + _vw->example_parser->metrics->DsjsonSumCostOriginal = + _joiner_metrics.sum_cost_original; if (!_joiner_metrics.first_event_id.empty()) { _vw->example_parser->metrics->FirstEventId = @@ -571,5 +575,5 @@ metrics::joiner_metrics example_joiner::get_metrics() { return _joiner_metrics; } -void example_joiner::apply_cli_overrides(vw *all, const input_options &parsed_options) { -} +void example_joiner::apply_cli_overrides(vw *all, + const input_options &parsed_options) {} diff --git a/external_parser/joiners/multistep_example_joiner.cc b/external_parser/joiners/multistep_example_joiner.cc index 6e54634f9..709994730 100644 --- a/external_parser/joiners/multistep_example_joiner.cc +++ b/external_parser/joiners/multistep_example_joiner.cc @@ -205,7 +205,7 @@ bool multistep_example_joiner::populate_order() { } reward::outcome_event multistep_example_joiner::process_outcome( - const TimePoint& timestamp, const v2::Metadata &metadata, const v2::OutcomeEvent& event) { + const TimePoint&, const v2::Metadata &metadata, const v2::OutcomeEvent& event) { reward::outcome_event o_event; o_event.metadata = {metadata.app_id() ? metadata.app_id()->str() : "", metadata.payload_type(), @@ -250,12 +250,12 @@ joined_event::multistep_joined_event multistep_example_joiner::process_interacti event.context()->size()); if (_vw->audit || _vw->hash_inv) { - VW::template read_line_json( - *_vw, examples, const_cast(line_vec.c_str()), + VW::template read_line_json_s( + *_vw, examples, const_cast(line_vec.c_str()), line_vec.size(), reinterpret_cast(&VW::get_unused_example), _vw); } else { - VW::template read_line_json( - *_vw, examples, const_cast(line_vec.c_str()), + VW::template read_line_json_s( + *_vw, examples, const_cast(line_vec.c_str()), line_vec.size(), reinterpret_cast(&VW::get_unused_example), _vw); } diff --git a/external_parser/joiners/multistep_example_joiner.h b/external_parser/joiners/multistep_example_joiner.h index 52f338cb7..18f488398 100644 --- a/external_parser/joiners/multistep_example_joiner.h +++ b/external_parser/joiners/multistep_example_joiner.h @@ -38,7 +38,7 @@ std::map const multistep_reward_fun using MultistepRewardFunctionType = void (*)(std::deque &); -inline void multistep_reward_identity(std::deque &rewards) {} +inline void multistep_reward_identity(std::deque &) {} inline void multistep_reward_suffix_sum(std::deque &rewards) { for (size_t i = 1; i < rewards.size(); ++i) { diff --git a/external_parser/parse_example_binary.cc b/external_parser/parse_example_binary.cc index 71b27fa96..c8d53164f 100644 --- a/external_parser/parse_example_binary.cc +++ b/external_parser/parse_example_binary.cc @@ -22,9 +22,9 @@ // use appropriate logger // helpers start -bool read_payload_type(io_buf *input, unsigned int &payload_type) { +bool read_payload_type(io_buf &input, unsigned int &payload_type) { char *line = nullptr; - auto len = input->buf_read(line, sizeof(unsigned int)); + auto len = input.buf_read(line, sizeof(unsigned int)); if (len < sizeof(unsigned int) || line == nullptr) { if (len == 0) { @@ -41,9 +41,9 @@ bool read_payload_type(io_buf *input, unsigned int &payload_type) { return true; } -bool read_payload_size(io_buf *input, uint32_t &payload_size) { +bool read_payload_size(io_buf &input, uint32_t &payload_size) { char *line = nullptr; - auto len = input->buf_read(line, sizeof(uint32_t)); + auto len = input.buf_read(line, sizeof(uint32_t)); if (len < sizeof(uint32_t) || line == nullptr) { return false; } @@ -52,9 +52,9 @@ bool read_payload_size(io_buf *input, uint32_t &payload_size) { return true; } -bool read_payload(io_buf *input, char *&payload, uint32_t payload_size) { +bool read_payload(io_buf &input, char *&payload, uint32_t payload_size) { char *line = nullptr; - auto len = input->buf_read(line, payload_size); + auto len = input.buf_read(line, payload_size); if (len < payload_size || line == nullptr) { return false; @@ -63,7 +63,7 @@ bool read_payload(io_buf *input, char *&payload, uint32_t payload_size) { return true; } -bool read_padding(io_buf *input, uint32_t previous_payload_size, +bool read_padding(io_buf &input, uint32_t previous_payload_size, uint32_t &padding_bytes) { char *line = nullptr; padding_bytes = previous_payload_size % 8; @@ -78,15 +78,13 @@ bool read_padding(io_buf *input, uint32_t previous_payload_size, namespace VW { namespace external { -binary_parser::binary_parser(std::unique_ptr&& joiner) - : _example_joiner(std::move(joiner)) - , _payload(nullptr) - , _payload_size(0) - , _total_size_read(0) {} +binary_parser::binary_parser(std::unique_ptr &&joiner) + : _example_joiner(std::move(joiner)), _payload(nullptr), _payload_size(0), + _total_size_read(0) {} binary_parser::~binary_parser() {} -bool binary_parser::read_version(io_buf *input) { +bool binary_parser::read_version(io_buf &input) { _payload = nullptr; const uint32_t buffer_length = 4 * sizeof(char); if (!read_payload(input, _payload, buffer_length)) { @@ -98,7 +96,8 @@ bool binary_parser::read_version(io_buf *input) { } _total_size_read += buffer_length; - _payload_size = 0; //this is used but the padding code, make it do the right thing. + _payload_size = + 0; // this is used but the padding code, make it do the right thing. if (*_payload != BINARY_PARSER_VERSION) { VW::io::logger::log_critical( @@ -109,7 +108,7 @@ bool binary_parser::read_version(io_buf *input) { return true; } -bool binary_parser::read_header(io_buf *input) { +bool binary_parser::read_header(io_buf &input) { _payload = nullptr; // read header size @@ -139,7 +138,7 @@ bool binary_parser::read_header(io_buf *input) { return true; } -bool binary_parser::skip_over_unknown_payload(io_buf *input) { +bool binary_parser::skip_over_unknown_payload(io_buf &input) { _payload = nullptr; if (!read_payload_size(input, _payload_size)) { VW::io::logger::log_critical( @@ -152,10 +151,10 @@ bool binary_parser::skip_over_unknown_payload(io_buf *input) { _total_size_read += sizeof(_payload_size); if (!read_payload(input, _payload, _payload_size)) { - VW::io::logger::log_critical( - "Failed to read unknown message payload of size [{}], after having read " - "[{}] bytes from the file", - _payload_size, _total_size_read); + VW::io::logger::log_critical("Failed to read unknown message payload of " + "size [{}], after having read " + "[{}] bytes from the file", + _payload_size, _total_size_read); return false; } @@ -164,7 +163,7 @@ bool binary_parser::skip_over_unknown_payload(io_buf *input) { return true; } -bool binary_parser::read_checkpoint_msg(io_buf *input) { +bool binary_parser::read_checkpoint_msg(io_buf &input) { _payload = nullptr; if (!read_payload_size(input, _payload_size)) { VW::io::logger::log_critical( @@ -200,8 +199,9 @@ bool binary_parser::read_checkpoint_msg(io_buf *input) { return true; } -bool binary_parser::read_regular_msg(io_buf *input, - v_array &examples, bool &ignore_msg) { +bool binary_parser::read_regular_msg(io_buf &input, + v_array &examples, + bool &ignore_msg) { _payload = nullptr; ignore_msg = false; @@ -225,8 +225,9 @@ bool binary_parser::read_regular_msg(io_buf *input, _total_size_read += _payload_size; - if(!_example_joiner->joiner_ready()) { - VW::io::logger::log_warn("Read regular message before any checkpoint data " + if (!_example_joiner->joiner_ready()) { + VW::io::logger::log_warn( + "Read regular message before any checkpoint data " "after having read [{}] bytes from the file. Events will be ignored.", _total_size_read); ignore_msg = true; @@ -246,7 +247,7 @@ bool binary_parser::read_regular_msg(io_buf *input, } _example_joiner->on_new_batch(); - for (const auto* event : *joined_payload->events()) { + for (const auto *event : *joined_payload->events()) { // process and group events in batch if (!_example_joiner->process_event(*event)) { VW::io::logger::log_error("Processing of an event from JoinedPayload " @@ -280,7 +281,7 @@ bool binary_parser::process_next_in_batch(v_array &examples) { return false; } -bool binary_parser::advance_to_next_payload_type(io_buf *input, +bool binary_parser::advance_to_next_payload_type(io_buf &input, unsigned int &payload_type) { // read potential excess padding after last payload read uint32_t padding; @@ -310,37 +311,36 @@ void binary_parser::persist_metrics( _example_joiner->persist_metrics(); } -bool binary_parser::parse_examples(vw *all, v_array &examples) { +bool binary_parser::parse_examples(vw *, io_buf &io_buf, + v_array &examples) { if (process_next_in_batch(examples)) { return true; } unsigned int payload_type; - while (advance_to_next_payload_type(all->example_parser->input.get(), - payload_type)) { + while (advance_to_next_payload_type(io_buf, payload_type)) { switch (payload_type) { case MSG_TYPE_FILEMAGIC: { - if (!read_version(all->example_parser->input.get())) { + if (!read_version(io_buf)) { return false; } break; } case MSG_TYPE_HEADER: { - if (!read_header(all->example_parser->input.get())) { + if (!read_header(io_buf)) { return false; } break; } case MSG_TYPE_CHECKPOINT: { - if (!read_checkpoint_msg(all->example_parser->input.get())) { + if (!read_checkpoint_msg(io_buf)) { return false; } break; } case MSG_TYPE_REGULAR: { bool ignore_msg = false; - if (read_regular_msg(all->example_parser->input.get(), examples, - ignore_msg)) { + if (read_regular_msg(io_buf, examples, ignore_msg)) { if (!ignore_msg) { return true; } @@ -356,7 +356,7 @@ bool binary_parser::parse_examples(vw *all, v_array &examples) { "Payload type not recognized [0x{:x}], after having read [{}] " "bytes from the file, attempting to skip payload", payload_type, _total_size_read); - if (!skip_over_unknown_payload(all->example_parser->input.get())) { + if (!skip_over_unknown_payload(io_buf)) { return false; } continue; diff --git a/external_parser/parse_example_binary.h b/external_parser/parse_example_binary.h index 365b12c98..f1bfccd9d 100644 --- a/external_parser/parse_example_binary.h +++ b/external_parser/parse_example_binary.h @@ -20,16 +20,20 @@ namespace external { class binary_parser : public parser { public: - binary_parser(std::unique_ptr&& joiner); //taking ownership of joiner + binary_parser( + std::unique_ptr &&joiner); // taking ownership of joiner ~binary_parser(); - bool parse_examples(vw *all, v_array &examples) override; - bool read_version(io_buf *input); - bool read_header(io_buf *input); - bool read_checkpoint_msg(io_buf *input); - bool read_regular_msg(io_buf *input, v_array &examples, bool &ignore_msg); - bool skip_over_unknown_payload(io_buf *input); - bool advance_to_next_payload_type(io_buf *input, unsigned int &payload_type); - void persist_metrics(std::vector>& list_metrics) override; + bool parse_examples(vw *all, io_buf &io_buf, + v_array &examples) override; + bool read_version(io_buf &input); + bool read_header(io_buf &input); + bool read_checkpoint_msg(io_buf &input); + bool read_regular_msg(io_buf &input, v_array &examples, + bool &ignore_msg); + bool skip_over_unknown_payload(io_buf &input); + bool advance_to_next_payload_type(io_buf &input, unsigned int &payload_type); + void persist_metrics( + std::vector> &list_metrics) override; private: bool process_next_in_batch(v_array &examples); diff --git a/external_parser/parse_example_converter.cc b/external_parser/parse_example_converter.cc index a9604e610..a1a67ce5f 100644 --- a/external_parser/parse_example_converter.cc +++ b/external_parser/parse_example_converter.cc @@ -14,16 +14,17 @@ binary_json_converter::binary_json_converter(std::unique_ptr &&joiner) binary_json_converter::~binary_json_converter() = default; -bool binary_json_converter::parse_examples(vw *all, +bool binary_json_converter::parse_examples(vw *all, io_buf &io_buf, v_array &examples) { - while (_parser.parse_examples(all, examples)) { + while (_parser.parse_examples(all, io_buf, examples)) { // do nothing } // vw will not learn, just exit return false; } -void binary_json_converter::persist_metrics(std::vector>&) { +void binary_json_converter::persist_metrics( + std::vector> &) { // do we want metrics here? } diff --git a/external_parser/parse_example_converter.h b/external_parser/parse_example_converter.h index df65b8325..5118a61a7 100644 --- a/external_parser/parse_example_converter.h +++ b/external_parser/parse_example_converter.h @@ -15,7 +15,7 @@ class binary_json_converter : public parser { public: binary_json_converter(std::unique_ptr&& joiner); //taking ownership of joiner ~binary_json_converter(); - bool parse_examples(vw *all, v_array &examples) override; + bool parse_examples(vw *all, io_buf& io_buf, v_array &examples) override; void persist_metrics(std::vector>& list_metrics) override; private: diff --git a/external_parser/parse_example_external.cc b/external_parser/parse_example_external.cc index b241903de..4bbf16219 100644 --- a/external_parser/parse_example_external.cc +++ b/external_parser/parse_example_external.cc @@ -156,8 +156,8 @@ void parser::persist_metrics(std::vector>& metric parser::~parser() {} -int parse_examples(vw *all, v_array &examples) { - return static_cast(all->external_parser->parse_examples(all, examples)); +int parse_examples(vw *all, io_buf& io_buf, v_array &examples) { + return static_cast(all->external_parser->parse_examples(all, io_buf, examples)); } } // namespace external } // namespace VW diff --git a/external_parser/parse_example_external.h b/external_parser/parse_example_external.h index 552bd42f1..c3c00ed7a 100644 --- a/external_parser/parse_example_external.h +++ b/external_parser/parse_example_external.h @@ -23,7 +23,7 @@ struct parser_options { bool use_client_time; }; -int parse_examples(vw *all, v_array &examples); +int parse_examples(vw *all, io_buf &io_buf, v_array &examples); class parser { public: @@ -32,8 +32,10 @@ class parser { static void set_parse_args(VW::config::option_group_definition &in_options, input_options &parsed_options); virtual ~parser(); - virtual bool parse_examples(vw *all, v_array &examples) = 0; - virtual void persist_metrics(std::vector>& list_metrics); + virtual bool parse_examples(vw *all, io_buf &io_buf, + v_array &examples) = 0; + virtual void + persist_metrics(std::vector> &list_metrics); }; } // namespace external diff --git a/external_parser/unit_tests/test_common.cc b/external_parser/unit_tests/test_common.cc index ac8e71e70..a7ced881f 100644 --- a/external_parser/unit_tests/test_common.cc +++ b/external_parser/unit_tests/test_common.cc @@ -14,8 +14,7 @@ bool is_big_endian(void) { return b_int.c[0] == 1; } -uint32_t from_network_order(std::uint32_t net_l) -{ +uint32_t from_network_order(std::uint32_t net_l) { if (is_big_endian()) { return net_l; } @@ -54,10 +53,8 @@ void clear_examples(v_array &examples, vw *vw) { } void set_buffer_as_vw_input(const std::vector &buffer, vw *vw) { - auto reader_view_of_buffer = VW::make_unique(); - vw->example_parser->input.reset(); - vw->example_parser->input = std::move(reader_view_of_buffer); - vw->example_parser->input->add_file( + vw->example_parser->input.close_files(); + vw->example_parser->input.add_file( VW::io::create_buffer_view(buffer.data(), buffer.size())); } @@ -91,13 +88,13 @@ std::string get_test_files_location() { uint32_t get_payload_size(std::vector &buffer) { std::vector size_buffer = {buffer.begin() + 4, buffer.begin() + 8}; - return endian::from_network_order(*reinterpret_cast(size_buffer.data())); + return endian::from_network_order( + *reinterpret_cast(size_buffer.data())); } std::vector wrap_into_joined_events( std::vector &buffer, - std::vector &detached_buffers) -{ + std::vector &detached_buffers) { const int PREAMBLE_LENGTH = 8; // if file is smaller than preamble size then fail BOOST_REQUIRE_GT(buffer.size(), PREAMBLE_LENGTH); @@ -110,10 +107,9 @@ std::vector wrap_into_joined_events( uint32_t payload_size = get_payload_size(buffer); // throw away first 8 bytes as they contain preamble (todo maybe verify // preamble) - std::vector event_batch_buffer = { - buffer.begin() + PREAMBLE_LENGTH, - buffer.begin() + PREAMBLE_LENGTH + payload_size - }; + std::vector event_batch_buffer = {buffer.begin() + PREAMBLE_LENGTH, + buffer.begin() + PREAMBLE_LENGTH + + payload_size}; auto event_batch = v2::GetEventBatch(event_batch_buffer.data()); BOOST_REQUIRE_GE(event_batch->events()->size(), 1); @@ -132,8 +128,8 @@ std::vector wrap_into_joined_events( fbb.Finish(fb); detached_buffers.push_back(fbb.Release()); - const v2::JoinedEvent *je = - flatbuffers::GetRoot(detached_buffers[event_index].data()); + const v2::JoinedEvent *je = flatbuffers::GetRoot( + detached_buffers[event_index].data()); event_list.push_back(je); event_index++; diff --git a/external_parser/unit_tests/test_log_converter.cc b/external_parser/unit_tests/test_log_converter.cc index b88fa32b5..6e10d8af0 100644 --- a/external_parser/unit_tests/test_log_converter.cc +++ b/external_parser/unit_tests/test_log_converter.cc @@ -30,7 +30,7 @@ std::string get_json_event(std::string infile_path, std::string outfile_path, v_array examples; examples.push_back(&VW::get_unused_example(vw)); - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { examples.push_back(&VW::get_unused_example(vw)); } diff --git a/external_parser/unit_tests/test_metrics.cc b/external_parser/unit_tests/test_metrics.cc index 2112ad4c4..70fb90447 100644 --- a/external_parser/unit_tests/test_metrics.cc +++ b/external_parser/unit_tests/test_metrics.cc @@ -214,7 +214,8 @@ BOOST_AUTO_TEST_CASE( std::map expected_float_metrics = { {"cbea_sum_cost", -16.0}, {"cbea_sum_cost_baseline", -5.0}, - {"dsjson_sum_cost_original", -57.0}, + // {"dsjson_sum_cost_original", -57.0}, + {"dsjson_sum_cost_original_first_slot", 0.0}, // TODO uncomment when some interaction work is pulled in from VW // {"cbea_avg_feat_per_event", 18.0}, // {"cbea_avg_actions_per_event", 1.0}, diff --git a/external_parser/unit_tests/test_skip_learn.cc b/external_parser/unit_tests/test_skip_learn.cc index de0fafc44..89125ee65 100644 --- a/external_parser/unit_tests/test_skip_learn.cc +++ b/external_parser/unit_tests/test_skip_learn.cc @@ -28,7 +28,7 @@ void should_not_add_examples(std::string &infile, v_array examples; examples.push_back(&VW::get_unused_example(vw)); - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { continue; } @@ -66,7 +66,7 @@ void should_add_examples(std::string &infile, v_array examples; examples.push_back(&VW::get_unused_example(vw)); - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { continue; } diff --git a/external_parser/unit_tests/test_vw_binary_parser.cc b/external_parser/unit_tests/test_vw_binary_parser.cc index 6b640c97c..435b72c4b 100644 --- a/external_parser/unit_tests/test_vw_binary_parser.cc +++ b/external_parser/unit_tests/test_vw_binary_parser.cc @@ -15,7 +15,7 @@ BOOST_AUTO_TEST_CASE(test_log_file_with_bad_magic) { unsigned int payload_type; VW::external::binary_parser bp(VW::make_unique(vw)); BOOST_CHECK_EQUAL(bp.advance_to_next_payload_type( - vw->example_parser->input.get(), payload_type), + vw->example_parser->input, payload_type), true); BOOST_CHECK_NE(payload_type, MSG_TYPE_FILEMAGIC); VW::finish(*vw); @@ -33,11 +33,11 @@ BOOST_AUTO_TEST_CASE(test_log_file_with_bad_version) { VW::external::binary_parser bp(VW::make_unique(vw)); BOOST_CHECK_EQUAL(bp.advance_to_next_payload_type( - vw->example_parser->input.get(), payload_type), + vw->example_parser->input, payload_type), true); BOOST_CHECK_EQUAL(payload_type, MSG_TYPE_FILEMAGIC); - BOOST_CHECK_EQUAL(bp.read_version(vw->example_parser->input.get()), false); + BOOST_CHECK_EQUAL(bp.read_version(vw->example_parser->input), false); VW::finish(*vw); } @@ -55,22 +55,22 @@ BOOST_AUTO_TEST_CASE(test_log_file_with_empty_msg_header) { VW::external::binary_parser bp(VW::make_unique(vw)); BOOST_CHECK_EQUAL(bp.advance_to_next_payload_type( - vw->example_parser->input.get(), payload_type), + vw->example_parser->input, payload_type), true); BOOST_CHECK_EQUAL(payload_type, MSG_TYPE_FILEMAGIC); - BOOST_CHECK_EQUAL(bp.read_version(vw->example_parser->input.get()), true); + BOOST_CHECK_EQUAL(bp.read_version(vw->example_parser->input), true); BOOST_CHECK_EQUAL(bp.advance_to_next_payload_type( - vw->example_parser->input.get(), payload_type), + vw->example_parser->input, payload_type), true); BOOST_CHECK_EQUAL(payload_type, MSG_TYPE_HEADER); - BOOST_CHECK_EQUAL(bp.read_header(vw->example_parser->input.get()), true); + BOOST_CHECK_EQUAL(bp.read_header(vw->example_parser->input), true); BOOST_CHECK_EQUAL(bp.advance_to_next_payload_type( - vw->example_parser->input.get(), payload_type), + vw->example_parser->input, payload_type), true); BOOST_CHECK_EQUAL(payload_type, MSG_TYPE_CHECKPOINT); - BOOST_CHECK_EQUAL(bp.read_checkpoint_msg(vw->example_parser->input.get()), + BOOST_CHECK_EQUAL(bp.read_checkpoint_msg(vw->example_parser->input), true); VW::finish(*vw); @@ -88,11 +88,11 @@ BOOST_AUTO_TEST_CASE(test_log_file_with_no_msg_header) { VW::external::binary_parser bp(VW::make_unique(vw)); BOOST_CHECK_EQUAL(bp.advance_to_next_payload_type( - vw->example_parser->input.get(), payload_type), + vw->example_parser->input, payload_type), true); BOOST_CHECK_EQUAL(payload_type, MSG_TYPE_FILEMAGIC); - BOOST_CHECK_EQUAL(bp.read_version(vw->example_parser->input.get()), true); - BOOST_CHECK_EQUAL(bp.read_header(vw->example_parser->input.get()), false); + BOOST_CHECK_EQUAL(bp.read_version(vw->example_parser->input), true); + BOOST_CHECK_EQUAL(bp.read_header(vw->example_parser->input), false); VW::finish(*vw); } @@ -116,44 +116,44 @@ BOOST_AUTO_TEST_CASE(test_log_file_with_unknown_msg_type) { unsigned int payload_type; BOOST_CHECK_EQUAL(bp.advance_to_next_payload_type( - vw->example_parser->input.get(), payload_type), + vw->example_parser->input, payload_type), true); BOOST_CHECK_EQUAL(payload_type, MSG_TYPE_FILEMAGIC); - BOOST_REQUIRE_EQUAL(bp.read_version(vw->example_parser->input.get()), true); + BOOST_REQUIRE_EQUAL(bp.read_version(vw->example_parser->input), true); BOOST_CHECK_EQUAL(bp.advance_to_next_payload_type( - vw->example_parser->input.get(), payload_type), + vw->example_parser->input, payload_type), true); BOOST_CHECK_EQUAL(payload_type, MSG_TYPE_HEADER); - BOOST_REQUIRE_EQUAL(bp.read_header(vw->example_parser->input.get()), true); + BOOST_REQUIRE_EQUAL(bp.read_header(vw->example_parser->input), true); BOOST_REQUIRE_EQUAL(bp.advance_to_next_payload_type( - vw->example_parser->input.get(), payload_type), + vw->example_parser->input, payload_type), true); BOOST_REQUIRE_EQUAL(payload_type, MSG_TYPE_CHECKPOINT); - BOOST_REQUIRE_EQUAL(bp.read_checkpoint_msg(vw->example_parser->input.get()), + BOOST_REQUIRE_EQUAL(bp.read_checkpoint_msg(vw->example_parser->input), true); // unknown header message BOOST_REQUIRE_EQUAL(bp.advance_to_next_payload_type( - vw->example_parser->input.get(), payload_type), + vw->example_parser->input, payload_type), true); BOOST_REQUIRE_NE(payload_type, MSG_TYPE_CHECKPOINT); BOOST_REQUIRE_NE(payload_type, MSG_TYPE_EOF); BOOST_REQUIRE_NE(payload_type, MSG_TYPE_HEADER); BOOST_REQUIRE_NE(payload_type, MSG_TYPE_REGULAR); - BOOST_REQUIRE_EQUAL(bp.skip_over_unknown_payload(vw->example_parser->input.get()), true); + BOOST_REQUIRE_EQUAL(bp.skip_over_unknown_payload(vw->example_parser->input), true); // regular message type BOOST_REQUIRE_EQUAL(bp.advance_to_next_payload_type( - vw->example_parser->input.get(), payload_type), + vw->example_parser->input, payload_type), true); BOOST_REQUIRE_EQUAL(payload_type, MSG_TYPE_REGULAR); v_array examples; examples.push_back(&VW::get_unused_example(vw)); bool ignore_msg = false; - BOOST_REQUIRE_EQUAL(bp.read_regular_msg(vw->example_parser->input.get(), examples, ignore_msg), + BOOST_REQUIRE_EQUAL(bp.read_regular_msg(vw->example_parser->input, examples, ignore_msg), true); BOOST_REQUIRE_EQUAL(ignore_msg, false); @@ -175,7 +175,7 @@ BOOST_AUTO_TEST_CASE(test_log_file_with_unknown_msg_type) { size_t total_examples_read = 0; - while (bp.parse_examples(vw, examples)) { + while (bp.parse_examples(vw, vw->example_parser->input, examples)) { total_examples_read++; clear_examples(examples, vw); examples.push_back(&VW::get_unused_example(vw)); @@ -204,7 +204,7 @@ BOOST_AUTO_TEST_CASE(test_log_file_with_corrupt_joined_event_payload) { // file contains 2 regular messages, first one contains a corrupted // JoinedPayload flatbuffer should be skipped without causing any problems and // the second regular message should be consumed - while (bp.parse_examples(vw, examples)) { + while (bp.parse_examples(vw, vw->example_parser->input, examples)) { BOOST_CHECK_EQUAL(examples.size(), 4); total_size_of_examples += examples.size(); clear_examples(examples, vw); @@ -233,7 +233,7 @@ BOOST_AUTO_TEST_CASE(test_log_file_with_mismatched_payload_types) { size_t total_size_of_examples = 0; // file contains 2 regular messages, both have wrong types set - while (bp.parse_examples(vw, examples)) { + while (bp.parse_examples(vw, vw->example_parser->input, examples)) { total_size_of_examples += examples.size(); } @@ -260,7 +260,7 @@ BOOST_AUTO_TEST_CASE(test_log_file_with_bad_event_in_joined_event) { size_t total_size_of_examples = 0; // file contains 2 regular messages each with one JoinedEvent that holds one // interaction and one observation, first JE has malformed event - while (bp.parse_examples(vw, examples)) { + while (bp.parse_examples(vw, vw->example_parser->input, examples)) { BOOST_CHECK_EQUAL(examples.size(), 4); total_size_of_examples += examples.size(); clear_examples(examples, vw); @@ -291,7 +291,7 @@ BOOST_AUTO_TEST_CASE(test_log_file_with_dedup_payload_missing) { // file contains 1 regular message with one JoinedEvent that holds one // interaction and one observation, but the dedup payload is missing so the // payload should not be processed - while (bp.parse_examples(vw, examples)) { + while (bp.parse_examples(vw, vw->example_parser->input, examples)) { total_size_of_examples += examples.size(); clear_examples(examples, vw); examples.push_back(&VW::get_unused_example(vw)); @@ -322,7 +322,7 @@ BOOST_AUTO_TEST_CASE(test_log_file_with_interaction_but_no_observation) { // interaction with a missing observation, and then another interaction with // its observation - BOOST_CHECK_EQUAL(bp.parse_examples(vw, examples), true); + BOOST_CHECK_EQUAL(bp.parse_examples(vw, vw->example_parser->input, examples), true); BOOST_CHECK_EQUAL(examples.size(), 4); total_size_of_examples += examples.size(); BOOST_CHECK_EQUAL(examples[1]->l.cb.costs.size(), 1); @@ -331,7 +331,7 @@ BOOST_AUTO_TEST_CASE(test_log_file_with_interaction_but_no_observation) { clear_examples(examples, vw); examples.push_back(&VW::get_unused_example(vw)); - BOOST_CHECK_EQUAL(bp.parse_examples(vw, examples), true); + BOOST_CHECK_EQUAL(bp.parse_examples(vw, vw->example_parser->input, examples), true); BOOST_CHECK_EQUAL(examples.size(), 4); total_size_of_examples += examples.size(); BOOST_CHECK_EQUAL(examples[1]->l.cb.costs.size(), 1); @@ -340,7 +340,7 @@ BOOST_AUTO_TEST_CASE(test_log_file_with_interaction_but_no_observation) { clear_examples(examples, vw); examples.push_back(&VW::get_unused_example(vw)); - BOOST_CHECK_EQUAL(bp.parse_examples(vw, examples), false); + BOOST_CHECK_EQUAL(bp.parse_examples(vw, vw->example_parser->input, examples), false); // both interactions processed BOOST_CHECK_EQUAL(total_size_of_examples, 8); @@ -367,7 +367,7 @@ BOOST_AUTO_TEST_CASE(test_log_file_with_no_interaction_with_observation) { // file contains 1 regular message with 1 JoinedEvent that holds one // two observations (i.e. missing interaction), and then another interaction // with its observation - while (bp.parse_examples(vw, examples)) { + while (bp.parse_examples(vw, vw->example_parser->input, examples)) { BOOST_CHECK_EQUAL(examples.size(), 4); total_size_of_examples += examples.size(); clear_examples(examples, vw); @@ -398,7 +398,7 @@ BOOST_AUTO_TEST_CASE(test_log_file_with_invalid_cb_context) { // interactions with their corresponding observations but both cb json // context's are wrong (i.e. it is a ccb context and so the json parser will // throw) and as a result we won't process anything - while (bp.parse_examples(vw, examples)) { + while (bp.parse_examples(vw, vw->example_parser->input, examples)) { total_size_of_examples += examples.size(); clear_examples(examples, vw); examples.push_back(&VW::get_unused_example(vw)); diff --git a/external_parser/unit_tests/test_vw_external_parser.cc b/external_parser/unit_tests/test_vw_external_parser.cc index bf3cbd36b..959755b62 100644 --- a/external_parser/unit_tests/test_vw_external_parser.cc +++ b/external_parser/unit_tests/test_vw_external_parser.cc @@ -17,7 +17,7 @@ BOOST_AUTO_TEST_CASE(cb_simple) { set_buffer_as_vw_input(buffer, vw); bool read_payload = false; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { read_payload = true; BOOST_CHECK_EQUAL(examples.size(), 4); BOOST_CHECK_EQUAL(examples[0]->indices.size(), 1); @@ -54,7 +54,7 @@ BOOST_AUTO_TEST_CASE(ccb_simple) { set_buffer_as_vw_input(buffer, vw); bool read_payload = false; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { read_payload = true; BOOST_CHECK_EQUAL(examples.size(), 6); BOOST_CHECK_EQUAL(examples[0]->indices.size(), 1); @@ -102,7 +102,7 @@ BOOST_AUTO_TEST_CASE(slates_simple) { bool read_payload = false; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { read_payload = true; BOOST_CHECK_EQUAL(examples.size(), 9); @@ -151,7 +151,7 @@ BOOST_AUTO_TEST_CASE(cb_dedup_compressed) { set_buffer_as_vw_input(buffer, vw); bool read_payload = false; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { read_payload = true; BOOST_CHECK_EQUAL(examples.size(), 4); BOOST_CHECK_EQUAL(examples[0]->indices.size(), 1); @@ -329,7 +329,7 @@ BOOST_AUTO_TEST_CASE(slates_skip_learn_w_activations) { set_buffer_as_vw_input(buffer, vw); size_t joined_events_count = 0; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { joined_events_count++; set_slates_label(examples); @@ -383,7 +383,7 @@ BOOST_AUTO_TEST_CASE(rrcr_ignore_examples_before_checkpoint) { set_buffer_as_vw_input(buffer, vw); int count = 0; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { ++count; clear_examples(examples, vw); examples.push_back(&VW::get_unused_example(vw)); @@ -409,7 +409,7 @@ BOOST_AUTO_TEST_CASE(rcrrmr_file_magic_and_header_in_the_middle_works) { set_buffer_as_vw_input(buffer, vw); int count = 0; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { ++count; clear_examples(examples, vw); examples.push_back(&VW::get_unused_example(vw)); @@ -442,7 +442,7 @@ BOOST_AUTO_TEST_CASE(cb_apprentice_mode) { set_buffer_as_vw_input(buffer, vw); size_t joined_events_count = 0; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { joined_events_count++; if (joined_events_count == event_without_baseline) { // non-baseline action, find the label and check that cost is -0.0 (i.e. @@ -501,7 +501,7 @@ BOOST_AUTO_TEST_CASE(cb_skip_learn_w_activations_and_apprentice) { set_buffer_as_vw_input(buffer, vw); size_t joined_events_count = 0; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { joined_events_count++; // simulate next call to parser->read by clearing up examples @@ -560,7 +560,7 @@ BOOST_AUTO_TEST_CASE(ccb_apprentice_mode) { set_buffer_as_vw_input(buffer, vw); size_t joined_events_count = 0; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { joined_events_count++; if (joined_events_count == 2 || joined_events_count == 5) { // baseline sent by example_gen is {1, 0} @@ -653,7 +653,7 @@ BOOST_AUTO_TEST_CASE(ccb_skip_learn_w_activations_and_apprentice) { set_buffer_as_vw_input(buffer, vw); size_t joined_events_count = 0; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { joined_events_count++; // simulate next call to parser->read by clearing up examples @@ -706,7 +706,7 @@ BOOST_AUTO_TEST_CASE(cb_pdrop_05_parse) { set_buffer_as_vw_input(buffer, vw); bool read_payload = false; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { read_payload = true; BOOST_CHECK_EQUAL(examples.size(), 4); BOOST_CHECK_EQUAL(examples[1]->l.cb.costs.size(), 0); @@ -737,7 +737,7 @@ BOOST_AUTO_TEST_CASE(cb_pdrop_1_parse) { set_buffer_as_vw_input(buffer, vw); bool read_payload = false; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { read_payload = true; BOOST_CHECK_EQUAL(examples.size(), 4); BOOST_CHECK_EQUAL(examples[0]->indices.size(), 1); @@ -771,7 +771,7 @@ BOOST_AUTO_TEST_CASE(multistep_2_episodes) { bool seenB = false; bool seenC = false; bool seenD = false; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { BOOST_CHECK_EQUAL(examples.size(), 4); BOOST_CHECK_EQUAL(examples[0]->indices.size(), 1); BOOST_CHECK_EQUAL(examples[3]->indices.size(), 0); // newline example @@ -846,7 +846,7 @@ BOOST_AUTO_TEST_CASE(multistep_3_deferred_episodes) { bool seenE = false; bool seenF = false; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { BOOST_CHECK_EQUAL(examples.size(), 4); BOOST_CHECK_EQUAL(examples[0]->indices.size(), 1); BOOST_CHECK_EQUAL(examples[3]->indices.size(), 0); // newline example @@ -921,7 +921,7 @@ BOOST_AUTO_TEST_CASE(multistep_unordered_episodes) { set_buffer_as_vw_input(buffer, vw); size_t counter = 0; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { BOOST_CHECK_EQUAL(examples.size(), 4); BOOST_CHECK_EQUAL(examples[0]->indices.size(), 1); BOOST_CHECK_EQUAL(examples[3]->indices.size(), 0); // newline example @@ -999,7 +999,7 @@ BOOST_AUTO_TEST_CASE(multistep_2_episodes_suffix_mean) { bool seenB = false; bool seenC = false; bool seenD = false; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { BOOST_CHECK_EQUAL(examples.size(), 4); BOOST_CHECK_EQUAL(examples[0]->indices.size(), 1); BOOST_CHECK_EQUAL(examples[3]->indices.size(), 0); // newline example @@ -1057,7 +1057,7 @@ BOOST_AUTO_TEST_CASE(multistep_2_episodes_suffix_sum) { bool seenD = false; size_t index = 0; - while (vw->example_parser->reader(vw, examples) > 0) { + while (vw->example_parser->reader(vw, vw->example_parser->input, examples) > 0) { BOOST_CHECK_EQUAL(examples.size(), 4); BOOST_CHECK_EQUAL(examples[0]->indices.size(), 1); BOOST_CHECK_EQUAL(examples[3]->indices.size(), 0); // newline example diff --git a/rlclientlib/utility/apim_http_authorization.cc b/rlclientlib/utility/apim_http_authorization.cc index 7ae863aa1..a7670378b 100644 --- a/rlclientlib/utility/apim_http_authorization.cc +++ b/rlclientlib/utility/apim_http_authorization.cc @@ -1,5 +1,3 @@ -#pragma once - #include "apim_http_authorization.h" namespace reinforcement_learning { diff --git a/rlclientlib/vw_model/safe_vw.cc b/rlclientlib/vw_model/safe_vw.cc index 2c2593627..7845eed81 100644 --- a/rlclientlib/vw_model/safe_vw.cc +++ b/rlclientlib/vw_model/safe_vw.cc @@ -57,7 +57,7 @@ namespace reinforcement_learning { { // alloc new element if we don't have any left if (_example_pool.size() == 0) { - auto ex = VW::alloc_examples(0, 1); + auto ex = VW::alloc_examples(1); _vw->example_parser->lbl_parser.default_label(&ex->l); return ex; @@ -110,12 +110,12 @@ namespace reinforcement_learning { std::vector line_vec(context, context + strlen(context) + 1); - VW::read_line_json(*_vw, examples, &line_vec[0], get_or_create_example_f, this); + VW::read_line_json_s(*_vw, examples, &line_vec[0], line_vec.size(), get_or_create_example_f, this); // finalize example VW::setup_examples(*_vw, examples); - // TODO: refactor setup_examples/read_line_json to take in multi_ex + // TODO: refactor setup_examples/read_line_json_s to take in multi_ex multi_ex examples2(examples.begin(), examples.end()); _vw->predict(examples2); @@ -143,7 +143,7 @@ namespace reinforcement_learning { std::vector line_vec(context, context + strlen(context) + 1); - VW::read_line_json(*_vw, examples, &line_vec[0], get_or_create_example_f, this); + VW::read_line_json_s(*_vw, examples, &line_vec[0], line_vec.size(), get_or_create_example_f, this); // finalize example VW::setup_examples(*_vw, examples); @@ -166,7 +166,7 @@ namespace reinforcement_learning { std::vector line_vec(context, context + strlen(context) + 1); - VW::read_line_json(*_vw, examples, &line_vec[0], get_or_create_example_f, this); + VW::read_line_json_s(*_vw, examples, &line_vec[0], line_vec.size(), get_or_create_example_f, this); // In order to control the seed for the sampling of each slot the event id + app id is passed in as the seed using the example tag. for(int i = 0; i < event_ids.size(); i++) @@ -180,7 +180,7 @@ namespace reinforcement_learning { // finalize example VW::setup_examples(*_vw, examples); - // TODO: refactor setup_examples/read_line_json to take in multi_ex + // TODO: refactor setup_examples/read_line_json_s to take in multi_ex multi_ex examples2(examples.begin(), examples.end()); _vw->predict(examples2); @@ -212,7 +212,7 @@ namespace reinforcement_learning { std::vector line_vec(context, context + strlen(context) + 1); - VW::read_line_json(*_vw, examples, &line_vec[0], get_or_create_example_f, this); + VW::read_line_json_s(*_vw, examples, &line_vec[0], line_vec.size(), get_or_create_example_f, this); // In order to control the seed for the sampling of each slot the event id + app id is passed in as the seed using the example tag. for(uint32_t i = 0; i < slot_ids.size(); i++) { @@ -226,7 +226,7 @@ namespace reinforcement_learning { // finalize example VW::setup_examples(*_vw, examples); - // TODO: refactor setup_examples/read_line_json to take in multi_ex + // TODO: refactor setup_examples/read_line_json_s to take in multi_ex multi_ex examples2(examples.begin(), examples.end()); _vw->predict(examples2); From 39d218e7fd55a3164044a5293f345f03fc855982 Mon Sep 17 00:00:00 2001 From: Olga Vrousgou Date: Thu, 7 Oct 2021 12:46:55 -0400 Subject: [PATCH 2/4] add fmt dep to unit test proj file --- unit_test/unit_test.vcxproj | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/unit_test/unit_test.vcxproj b/unit_test/unit_test.vcxproj index c15790f22..d033e6e5c 100644 --- a/unit_test/unit_test.vcxproj +++ b/unit_test/unit_test.vcxproj @@ -83,7 +83,7 @@ - USE_AZURE_FACTORIES;FLATBUFFERS_SPAN_MINIMAL;$(PreprocessorDefinitions) + USE_AZURE_FACTORIES;SPDLOG_FMT_EXTERNAL;FLATBUFFERS_SPAN_MINIMAL;$(PreprocessorDefinitions) @@ -94,7 +94,7 @@ Disabled WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) false - $(SolutionDir)include;$(SolutionDir)rlclientlib;$(SolutionDir)\ext_libs\date;$(SolutionDir)\ext_libs\vowpal_wabbit\explore;$(SolutionDir)\ext_libs\vowpal_wabbit\vowpalwabbit;$(SolutionDir)\ext_libs\fakeit;%(AdditionalIncludeDirectories);$(VcpkgRoot)include + $(SolutionDir)include;$(SolutionDir)rlclientlib;$(SolutionDir)\ext_libs\date;$(SolutionDir)\ext_libs\vowpal_wabbit\explore;$(SolutionDir)\ext_libs\vowpal_wabbit\ext_libs\fmt\include;$(SolutionDir)\ext_libs\vowpal_wabbit\vowpalwabbit;$(SolutionDir)\ext_libs\fakeit;%(AdditionalIncludeDirectories);$(VcpkgRoot)include Console @@ -111,7 +111,7 @@ Disabled _DEBUG;_CONSOLE;%(PreprocessorDefinitions) false - $(SolutionDir)include;$(SolutionDir)rlclientlib;$(SolutionDir)\ext_libs\date;$(SolutionDir)\ext_libs\vowpal_wabbit\explore;$(SolutionDir)\ext_libs\vowpal_wabbit\vowpalwabbit;$(SolutionDir)\ext_libs\fakeit;%(AdditionalIncludeDirectories);$(VcpkgRoot)include + $(SolutionDir)include;$(SolutionDir)rlclientlib;$(SolutionDir)\ext_libs\date;$(SolutionDir)\ext_libs\vowpal_wabbit\explore;$(SolutionDir)\ext_libs\vowpal_wabbit\ext_libs\fmt\include;$(SolutionDir)\ext_libs\vowpal_wabbit\vowpalwabbit;$(SolutionDir)\ext_libs\fakeit;%(AdditionalIncludeDirectories);$(VcpkgRoot)include Console @@ -130,7 +130,7 @@ true WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) false - $(SolutionDir)include;$(SolutionDir)rlclientlib;$(SolutionDir)\ext_libs\date;$(SolutionDir)\ext_libs\vowpal_wabbit\explore;$(SolutionDir)\ext_libs\vowpal_wabbit\vowpalwabbit;$(SolutionDir)\ext_libs\fakeit;%(AdditionalIncludeDirectories);$(VcpkgRoot)include + $(SolutionDir)include;$(SolutionDir)rlclientlib;$(SolutionDir)\ext_libs\date;$(SolutionDir)\ext_libs\vowpal_wabbit\explore;$(SolutionDir)\ext_libs\vowpal_wabbit\ext_libs\fmt\include;$(SolutionDir)\ext_libs\vowpal_wabbit\vowpalwabbit;$(SolutionDir)\ext_libs\fakeit;%(AdditionalIncludeDirectories);$(VcpkgRoot)include Console @@ -150,7 +150,7 @@ true NDEBUG;_CONSOLE;%(PreprocessorDefinitions) false - $(SolutionDir)include;$(SolutionDir)rlclientlib;$(SolutionDir)\ext_libs\date;$(SolutionDir)\ext_libs\vowpal_wabbit\explore;$(SolutionDir)\ext_libs\vowpal_wabbit\vowpalwabbit;$(SolutionDir)\ext_libs\fakeit;%(AdditionalIncludeDirectories);$(VcpkgRoot)include + $(SolutionDir)include;$(SolutionDir)rlclientlib;$(SolutionDir)\ext_libs\date;$(SolutionDir)\ext_libs\vowpal_wabbit\explore;$(SolutionDir)\ext_libs\vowpal_wabbit\ext_libs\fmt\include;$(SolutionDir)\ext_libs\vowpal_wabbit\vowpalwabbit;$(SolutionDir)\ext_libs\fakeit;%(AdditionalIncludeDirectories);$(VcpkgRoot)include Console From 89df3b1cde6c89bac0bb945a4ce0c7ace6f774e0 Mon Sep 17 00:00:00 2001 From: Olga Vrousgou Date: Thu, 7 Oct 2021 17:26:52 -0400 Subject: [PATCH 3/4] explicitly install boost-math --- .scripts/restore-vw-bp-deps.cmd | 1 + 1 file changed, 1 insertion(+) diff --git a/.scripts/restore-vw-bp-deps.cmd b/.scripts/restore-vw-bp-deps.cmd index 7b48d59e9..defea4c77 100644 --- a/.scripts/restore-vw-bp-deps.cmd +++ b/.scripts/restore-vw-bp-deps.cmd @@ -16,6 +16,7 @@ REM x64-windows-static-md is a community triplet that sets CRT to dynamic but al %vcpkgPath% install boost-program-options:x64-windows-static-md %vcpkgPath% install boost-test:x64-windows-static-md %vcpkgPath% install boost-align:x64-windows-static-md +%vcpkgPath% install boost-math:x64-windows-static-md POPD From 23692cfde58a6ca1153e4188f0891e40b9cbe8bd Mon Sep 17 00:00:00 2001 From: Olga Vrousgou Date: Thu, 7 Oct 2021 17:55:39 -0400 Subject: [PATCH 4/4] update vw to include last 2 commits --- ext_libs/vowpal_wabbit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext_libs/vowpal_wabbit b/ext_libs/vowpal_wabbit index 6a5f1f3b7..2028a2545 160000 --- a/ext_libs/vowpal_wabbit +++ b/ext_libs/vowpal_wabbit @@ -1 +1 @@ -Subproject commit 6a5f1f3b790cd37530fae4ec436f5c76683d5b27 +Subproject commit 2028a25450a9d97b3e75e8beff6a42fd6e982c65