namespace

This commit is contained in:
Hieu Hoang 2017-01-27 13:33:14 +00:00
parent 6cde867f37
commit 36eaa17f93
85 changed files with 306 additions and 10 deletions

View File

@ -6,6 +6,7 @@
#include "common/types.h"
#include "scorer.h"
namespace amunmt {
class BestHypsBase
{
@ -24,3 +25,5 @@ public:
};
typedef std::shared_ptr<BestHypsBase> BestHypsBasePtr;
}

View File

@ -5,6 +5,8 @@
#include <memory>
#include "common/types.h"
namespace amunmt {
class Hypothesis;
typedef std::shared_ptr<Hypothesis> HypothesisPtr;
typedef std::vector<HypothesisPtr> Beam;
@ -24,3 +26,6 @@ class BaseMatrix {
virtual std::string Debug() const = 0;
};
}

View File

@ -5,6 +5,8 @@
#include "common/exception.h"
#include "common/git_version.h"
namespace amunmt {
#define SET_OPTION(key, type) \
do { if(!vm_[key].defaulted() || !config_[key]) { \
config_[key] = vm_[key].as<type>(); \
@ -342,3 +344,5 @@ void Config::LogOptions() {
OutputRec(config_, out);
LOG(info) << "Options: \n" << out.c_str();
}
}

View File

@ -5,6 +5,8 @@
#include "logging.h"
namespace amunmt {
class Config {
private:
YAML::Node config_;
@ -33,3 +35,6 @@ class Config {
void LogOptions();
};
}

View File

@ -14,6 +14,8 @@
#include "common/exception.h"
#include "common/translation_task.h"
using namespace amunmt;
int main(int argc, char* argv[]) {
God god;
god.Init(argc, argv);

View File

@ -8,6 +8,8 @@
#include "exception.h"
namespace amunmt {
class InputFileStream {
public:
InputFileStream(const std::string& file)
@ -45,3 +47,6 @@ class InputFileStream {
boost::filesystem::ifstream ifstream_;
boost::iostreams::filtering_istream istream_;
};
}

View File

@ -14,6 +14,8 @@
#include "common/utils.h"
#include "common/types.h"
namespace amunmt {
Filter::Filter(const size_t numFirstWords) : numFirstWords_(numFirstWords) {}
Filter::Filter(const Vocab& srcVocab,
@ -117,3 +119,5 @@ size_t Filter::GetNumFirstWords() const {
void Filter::SetNumFirstWords(const size_t numFirstWords) {
numFirstWords_ = numFirstWords;
}
}

View File

@ -7,6 +7,8 @@
#include "common/types.h"
namespace amunmt {
class Vocab;
class Filter {
@ -56,3 +58,6 @@ class Filter {
};
typedef std::unique_ptr<Filter> FilterPtr;
}

View File

@ -19,6 +19,8 @@
using namespace std;
namespace amunmt {
God::God()
:threadIncr_(0)
{
@ -292,3 +294,6 @@ Search &God::GetSearch() const
assert(obj);
return *obj;
}
}

View File

@ -20,6 +20,8 @@
#include "common/processor/bpe.h"
#include "common/utils.h"
namespace amunmt {
class Search;
class Weights;
class Vocab;
@ -103,3 +105,6 @@ class God {
mutable boost::thread_specific_ptr<Search> search_;
mutable boost::shared_mutex accessLock_;
};
}

View File

@ -1,6 +1,8 @@
#include "history.h"
#include "sentence.h"
namespace amunmt {
Histories::Histories(const God &god, const Sentences& sentences)
: coll_(sentences.size())
{
@ -41,3 +43,6 @@ void Histories::Append(const Histories &other)
coll_.push_back(history);
}
}
}

View File

@ -5,6 +5,8 @@
#include "god.h"
#include "hypothesis.h"
namespace amunmt {
class History {
private:
struct HypothesisCoord {
@ -99,3 +101,4 @@ class Histories {
Histories(const Histories &) = delete;
};
}

View File

@ -3,6 +3,8 @@
#include "common/types.h"
#include "common/soft_alignment.h"
namespace amunmt {
class Hypothesis;
typedef std::shared_ptr<Hypothesis> HypothesisPtr;
@ -74,3 +76,6 @@ typedef std::vector<HypothesisPtr> Beam;
typedef std::vector<Beam> Beams;
typedef std::pair<Words, HypothesisPtr> Result;
typedef std::vector<Result> NBestList;
}

View File

@ -1,2 +1,7 @@
#include "loader.h"
namespace amunmt {
}

View File

@ -6,6 +6,8 @@
#include "scorer.h"
#include "common/base_best_hyps.h"
namespace amunmt {
class Loader {
public:
Loader(const std::string& name,
@ -39,3 +41,6 @@ class Loader {
};
typedef std::unique_ptr<Loader> LoaderPtr;
}

View File

@ -13,6 +13,7 @@
#endif
#endif
namespace amunmt {
LoaderPtr LoaderFactory::Create(
const God &god,
@ -82,3 +83,6 @@ Loader *LoaderFactory::CreateCPU(
return NULL;
}
}

View File

@ -6,6 +6,8 @@
#include "common/exception.h"
#include "common/loader.h"
namespace amunmt {
#define IF_MATCH_RETURN(god, typeVar, typeStr, LoaderType) \
do { \
if(typeVar == typeStr) { \
@ -38,3 +40,5 @@ class LoaderFactory {
};
}

View File

@ -1,3 +1,7 @@
#include "logging.h"
namespace amunmt {
}

View File

@ -2,4 +2,8 @@
#include "spdlog/spdlog.h"
namespace amunmt {
#define LOG(logger) spdlog::get(#logger)->info()
}

View File

@ -3,6 +3,8 @@
using namespace std;
namespace amunmt {
OutputCollector::OutputCollector()
: nextId_(0),
outStrm_(&std::cout)
@ -46,3 +48,6 @@ void OutputCollector::Write(long sourceId, const std::string& output)
outputs_[sourceId] = output;
}
}
}

View File

@ -5,6 +5,8 @@
#include <boost/thread/mutex.hpp>
#include <boost/unordered_map.hpp>
namespace amunmt {
class OutputCollector {
public:
OutputCollector();
@ -21,3 +23,6 @@ class OutputCollector {
Outputs outputs_;
};
}

View File

@ -1,5 +1,7 @@
#include "printer.h"
namespace amunmt {
std::vector<size_t> GetAlignment(const HypothesisPtr& hypothesis) {
std::vector<SoftAlignment> aligns;
HypothesisPtr last = hypothesis->GetPrevHyp();
@ -31,3 +33,6 @@ std::string GetAlignmentString(const std::vector<size_t>& alignment) {
}
return alignString.str();
}
}

View File

@ -8,6 +8,8 @@
#include "common/vocab.h"
#include "common/soft_alignment.h"
namespace amunmt {
std::vector<size_t> GetAlignment(const HypothesisPtr& hypothesis);
std::string GetAlignmentString(const std::vector<size_t>& alignment);
@ -65,3 +67,6 @@ void Printer(const God &god, const Histories& histories, OStream& out) {
Printer(god, history, out);
}
}
}

View File

@ -7,6 +7,7 @@
#include "utf8/utf8.h"
#include "common/utils.h"
namespace amunmt {
std::vector<std::string> BPE::Preprocess(const std::vector<std::string> input) const {
return Encode(input);
@ -216,3 +217,5 @@ bool BPE::EndsWith(std::string const &fullString, std::string const suffix) cons
return false;
}
}
}

View File

@ -9,6 +9,7 @@
#include "common/processor/processor.h"
template<class T>
inline void hash_combine(std::size_t & seed, const T & v)
{
@ -30,6 +31,8 @@ namespace std
};
}
namespace amunmt {
class BPE : public Processor {
using BPEPair = std::pair<std::string, std::string>;
@ -68,3 +71,4 @@ class BPE : public Processor {
};
}

View File

@ -4,6 +4,8 @@
#include <vector>
#include <memory>
namespace amunmt {
class Preprocessor {
public:
virtual std::vector<std::string> Preprocess(const std::vector<std::string> input) const = 0;
@ -24,3 +26,5 @@ class Processor : public Preprocessor, public Postprocessor {
virtual ~Processor() {}
};
using ProcessorPtr = std::unique_ptr<Processor>;
}

View File

@ -1,7 +1,11 @@
#include "scorer.h"
namespace amunmt {
Scorer::Scorer(const std::string& name,
const YAML::Node& config, size_t tab)
: name_(name), config_(config), tab_(tab)
{
}
}

View File

@ -8,6 +8,8 @@
#include "common/base_matrix.h"
#include "yaml-cpp/node/node.h"
namespace amunmt {
class God;
class State {
@ -83,3 +85,5 @@ class SourceIndependentScorer : public Scorer {
};
typedef std::shared_ptr<Scorer> ScorerPtr;
}

View File

@ -9,6 +9,8 @@
using namespace std;
namespace amunmt {
Search::Search(const God &god)
{
deviceInfo_ = god.GetNextDevice();
@ -132,3 +134,6 @@ std::shared_ptr<Histories> Search::Decode(const God &god, const Sentences& sente
return ret;
}
}

View File

@ -6,6 +6,7 @@
#include "common/base_best_hyps.h"
#include "common/history.h"
namespace amunmt {
class Search {
public:
@ -27,3 +28,6 @@ class Search {
DeviceInfo deviceInfo_;
};
}

View File

@ -4,6 +4,8 @@
#include "utils.h"
#include "common/vocab.h"
namespace amunmt {
Sentence::Sentence(const God &god, size_t vLineNum, const std::string& line)
: lineNum_(vLineNum), line_(line)
{
@ -80,3 +82,5 @@ void Sentences::SortByLength() {
std::sort(coll_.rbegin(), coll_.rend(), LengthOrderer());
}
}

View File

@ -4,6 +4,8 @@
#include <string>
#include "types.h"
namespace amunmt {
class God;
class Sentence {
@ -58,3 +60,6 @@ class Sentences {
Sentences(const Sentences &) = delete;
};
}

View File

@ -38,6 +38,8 @@ This source code has been modified to have optional bounded size.
#include <functional>
#include <stdexcept>
namespace amunmt {
class ThreadPool {
public:
explicit ThreadPool(size_t threads, size_t bound /* bound on size, or 0 for unbounded */ = 0);
@ -129,5 +131,5 @@ inline ThreadPool::~ThreadPool() {
}
}
}

View File

@ -6,6 +6,8 @@
using namespace std;
namespace amunmt {
void TranslationTask(const God &god, std::shared_ptr<Sentences> sentences, size_t taskCounter) {
Search &search = god.GetSearch();
@ -75,3 +77,5 @@ void TranslationTask(const God &god, std::shared_ptr<Sentences> sentences, size_
}
}

View File

@ -2,6 +2,11 @@
#include <string>
#include "history.h"
namespace amunmt {
class God;
void TranslationTask(const God &god, std::shared_ptr<Sentences> sentences, size_t taskCounter);
}

View File

@ -1,7 +1,12 @@
#include "types.h"
namespace amunmt {
std::ostream& operator<<(std::ostream& out, const DeviceInfo& obj)
{
out << obj.deviceType << " t=" << obj.threadInd << " d=" << obj.deviceId;
return out;
}
}

View File

@ -5,6 +5,8 @@
#include <vector>
#include <iostream>
namespace amunmt {
typedef size_t Word;
typedef std::vector<Word> Words;
@ -25,3 +27,6 @@ struct DeviceInfo
size_t threadInd;
size_t deviceId;
};
}

View File

@ -2,6 +2,8 @@
#include <iostream>
#include <sstream>
namespace amunmt {
void Trim(std::string& s) {
boost::trim_if(s, boost::is_any_of(" \t\n"));
}
@ -49,3 +51,6 @@ std::string Join(const std::vector<std::string>& words,
}
return ss.str();
}
}

View File

@ -3,6 +3,8 @@
#include <vector>
#include <boost/algorithm/string.hpp>
namespace amunmt {
void Trim(std::string& s);
void Split(const std::string& line, std::vector<std::string>& pieces, const std::string del=" ");
@ -11,3 +13,6 @@ std::string Join(const std::vector<std::string>& words, const std::string del="
std::string Join(const std::vector<std::string>& words,
const std::vector<size_t>& align, const std::string del=" ");
}

View File

@ -7,6 +7,8 @@
#include "common/file_stream.h"
#include "common/exception.h"
namespace amunmt {
Vocab::Vocab(const std::string& path) {
YAML::Node vocab = YAML::Load(InputFileStream(path));
for(auto&& pair : vocab) {
@ -63,3 +65,6 @@ const std::string& Vocab::operator[](size_t id) const {
size_t Vocab::size() const {
return id2str_.size();
}
}

View File

@ -6,6 +6,8 @@
#include "common/types.h"
namespace amunmt {
class Vocab {
public:
Vocab(const std::string& path);
@ -26,3 +28,5 @@ class Vocab {
std::map<std::string, size_t> str2id_;
std::vector<std::string> id2str_;
};
}

View File

@ -8,6 +8,7 @@
#include "common/exception.h"
#include "cpu/mblas/matrix.h"
namespace amunmt {
namespace CPU {
struct ProbCompare {
@ -143,3 +144,4 @@ public:
};
} // namespace
}

View File

@ -18,6 +18,8 @@
using namespace std;
namespace amunmt {
namespace CPU {
using EDState = EncoderDecoderState;
@ -153,3 +155,5 @@ BestHypsBasePtr EncoderDecoderLoader::GetBestHyps(const God &god) const {
}
}

View File

@ -12,6 +12,8 @@
#include "../mblas/matrix.h"
namespace amunmt {
class Sentence;
namespace CPU {
@ -86,3 +88,5 @@ class EncoderDecoder : public Scorer {
};
}
}

View File

@ -9,6 +9,8 @@
#include "common/logging.h"
#include "common/base_best_hyps.h"
namespace amunmt {
namespace CPU {
class Weights;
@ -28,3 +30,4 @@ class EncoderDecoderLoader : public Loader {
};
} // namespace CPU
}

View File

@ -1,2 +1,7 @@
#include "decoder.h"
namespace amunmt {
}

View File

@ -5,6 +5,7 @@
#include "gru.h"
#include "common/god.h"
namespace amunmt {
namespace CPU {
class Decoder {
@ -308,3 +309,5 @@ class Decoder {
};
}
}

View File

@ -3,3 +3,8 @@
#include "model.h"
#include "encoder.h"
#include "decoder.h"
namespace amunmt {
}

View File

@ -2,6 +2,7 @@
using namespace std;
namespace amunmt {
namespace CPU {
void Encoder::GetContext(const std::vector<size_t>& words,
@ -27,3 +28,5 @@ void Encoder::GetContext(const std::vector<size_t>& words,
}
}
}

View File

@ -4,6 +4,7 @@
#include "../dl4mt/model.h"
#include "../dl4mt/gru.h"
namespace amunmt {
namespace CPU {
class Encoder {
@ -95,4 +96,5 @@ class Encoder {
};
}
}

View File

@ -1,3 +1,6 @@
#include "gru.h"
namespace amunmt {
}

View File

@ -1,6 +1,7 @@
#pragma once
#include "../mblas/matrix.h"
namespace amunmt {
namespace CPU {
template <class Weights>
@ -78,4 +79,5 @@ class GRU {
};
}
}

View File

@ -2,6 +2,7 @@
using namespace std;
namespace amunmt {
namespace CPU {
Weights::Embeddings::Embeddings(const NpzConverter& model, const std::string &key)
@ -75,4 +76,5 @@ decSoftmax_(model)
}
}
}

View File

@ -8,6 +8,7 @@
#include "../mblas/matrix.h"
namespace amunmt {
namespace CPU {
struct Weights {
@ -183,4 +184,5 @@ inline std::ostream& operator<<(std::ostream &out, const Weights &obj)
}
}
}

View File

@ -13,10 +13,12 @@
using namespace std;
namespace amunmt {
namespace CPU {
namespace mblas {
}
}
}

View File

@ -9,6 +9,7 @@
#include "phoenix_functions.h"
#include "common/base_matrix.h"
namespace amunmt {
namespace CPU {
namespace mblas {
@ -303,3 +304,4 @@ MT Broadcast(const Functor& functor, const MT1& m1, const MT2& m2) {
}
}
}

View File

@ -3,10 +3,12 @@
#include "phoenix_functions.h"
namespace amunmt {
namespace CPU {
namespace mblas
{
}
}
}

View File

@ -1,5 +1,6 @@
#pragma once
namespace amunmt {
namespace CPU {
namespace mblas
{
@ -108,4 +109,5 @@ namespace mblas
}
}
}

View File

@ -3,6 +3,7 @@
#include "cnpy/cnpy.h"
#include "mblas/matrix.h"
namespace amunmt {
namespace CPU {
class NpzConverter {
@ -90,4 +91,5 @@ class NpzConverter {
};
}
}

View File

@ -11,6 +11,7 @@
#include "gpu/decoder/encoder_decoder.h"
namespace amunmt {
namespace GPU {
class BestHyps : public BestHypsBase
@ -167,3 +168,5 @@ class BestHyps : public BestHypsBase
};
}
}

View File

@ -4,6 +4,7 @@
#include "language_model.h"
namespace amunmt {
namespace GPU {
class ClassLanguageModel : public LanguageModel {
@ -61,3 +62,4 @@ class ClassLanguageModel : public LanguageModel {
};
}
}

View File

@ -10,6 +10,7 @@
using namespace std;
namespace amunmt {
namespace GPU {
////////////////////////////////////////////
@ -162,4 +163,5 @@ BestHypsBasePtr EncoderDecoderLoader::GetBestHyps(const God &god) const {
}
}
}

View File

@ -10,6 +10,7 @@
#include "gpu/types-gpu.h"
namespace amunmt {
namespace GPU {
class EncoderDecoderState;
@ -87,3 +88,5 @@ class EncoderDecoderLoader : public Loader {
};
}
}

View File

@ -5,6 +5,7 @@
#include "gpu/mblas/matrix.h"
namespace amunmt {
namespace GPU {
class EncoderDecoderState : public State {
@ -24,4 +25,5 @@ class EncoderDecoderState : public State {
mblas::Matrix embeddings_;
};
}
} // namespace GPU

View File

@ -6,6 +6,7 @@
#include "gpu/types-gpu.h"
#include "common/god.h"
namespace amunmt {
namespace GPU {
class Decoder {
@ -350,3 +351,5 @@ class Decoder {
};
}
}

View File

@ -2,6 +2,7 @@
using namespace std;
namespace amunmt {
namespace GPU {
Encoder::Encoder(const Weights& model)
@ -66,4 +67,5 @@ void Encoder::GetContext(const Sentences& source, size_t tab, mblas::Matrix& Con
}
}
}

View File

@ -6,6 +6,7 @@
#include "common/sentence.h"
#include "gpu/types-gpu.h"
namespace amunmt {
namespace GPU {
class Encoder {
@ -105,4 +106,5 @@ class Encoder {
};
}
}

View File

@ -1,5 +1,6 @@
#include "gru.h"
namespace amunmt {
namespace GPU {
__global__ void gElementwiseOps(float* out,
@ -43,4 +44,5 @@ __global__ void gElementwiseOps(float* out,
}
}
}

View File

@ -2,6 +2,7 @@
#include "gpu/mblas/matrix_functions.h"
namespace amunmt {
namespace GPU {
template <class Weights>
@ -148,4 +149,6 @@ template<class T>
using GRU = FastGRU<T>;
}
}

View File

@ -6,6 +6,7 @@
#include "gpu/mblas/matrix.h"
#include "gpu/npz_converter.h"
namespace amunmt {
namespace GPU {
struct Weights {
@ -213,4 +214,6 @@ struct Weights {
};
}
}

View File

@ -3,6 +3,7 @@
#include <cuda.h>
#include <cublas_v2.h>
namespace amunmt {
namespace GPU {
namespace mblas {
@ -58,3 +59,4 @@ class CublasHandler {
} // namespace mblas
} // namespace GPU
}

View File

@ -7,6 +7,7 @@
#include "gpu/types-gpu.h"
namespace amunmt {
namespace GPU {
namespace mblas {
@ -143,3 +144,4 @@ typedef TMatrix<DeviceVector<int>> IMatrix;
} // namespace mblas
} // namespace GPU
}

View File

@ -2,6 +2,7 @@
#include "gpu/mblas/handles.h"
namespace amunmt {
namespace GPU {
namespace mblas {
@ -508,3 +509,4 @@ void MapMatrix(Matrix& state, const DeviceVector<int>& mapping, size_t i) {
} // namespace mblas
} // namespace GPU
}

View File

@ -13,6 +13,7 @@
#include "gpu/mblas/matrix.h"
#include "gpu/mblas/handles.h"
namespace amunmt {
namespace GPU {
namespace mblas {
@ -373,3 +374,4 @@ void SetColumn(Matrix& In, int noColumn, float value);
} // namespace mblas
} // namespace GPU
}

View File

@ -2,6 +2,7 @@
#include <iostream>
namespace amunmt {
namespace GPU {
static void HandleError(cudaError_t err, const char *file, int line ) {
@ -356,4 +357,5 @@ void NthElement::getValueByKey(std::vector<float>& out, float* d_in) {
cudaStreamSynchronize(stream_);
}
}
} // namespace GPU

View File

@ -6,6 +6,7 @@
#include <cuda.h>
#include "gpu/mblas/matrix.h"
namespace amunmt {
namespace GPU {
class NthElement {
@ -47,4 +48,5 @@ class NthElement {
size_t lastN;
};
}
} // namespace GPU

View File

@ -1,5 +1,7 @@
#include "npz_converter.h"
namespace amunmt {
namespace GPU {
}
}

View File

@ -3,6 +3,7 @@
#include "cnpy/cnpy.h"
#include "mblas/matrix_functions.h"
namespace amunmt {
namespace GPU {
class NpzConverter {
@ -87,5 +88,6 @@ class NpzConverter {
};
}
}

View File

@ -3,6 +3,8 @@
using namespace std;
namespace amunmt {
std::string HypoInfo::Debug() const
{
stringstream strm;
@ -13,3 +15,6 @@ std::string HypoInfo::Debug() const
<< " score=" << score;
return strm.str();
}
}

View File

@ -8,6 +8,8 @@
#include <string>
#include "common/scorer.h"
namespace amunmt {
struct HypoInfo
{
std::vector<size_t> words;
@ -20,4 +22,5 @@ struct HypoInfo
};
}

View File

@ -4,6 +4,8 @@
using namespace std;
namespace amunmt {
std::string NeuralPhrase::Debug() const
{
stringstream strm;
@ -13,5 +15,6 @@ std::string NeuralPhrase::Debug() const
return strm.str();
}
}

View File

@ -3,6 +3,8 @@
#include <vector>
#include <string>
namespace amunmt {
class NeuralPhrase {
public:
std::vector<size_t> words;
@ -28,3 +30,6 @@ class NeuralPhrase {
private:
};
}

View File

@ -12,7 +12,7 @@
#include "common/history.h"
#include "common/sentence.h"
using namespace GPU;
namespace amunmt {
void MosesPlugin::initGod(const std::string& configPath) {
std::string configs = "-c " + configPath;
@ -240,3 +240,5 @@ void MosesPlugin::Rescore(std::vector<HypoInfo> &hypos)
hypo.nextStates = nextStates;
}
}
}

View File

@ -14,6 +14,8 @@
#include "neural_phrase.h"
#include "hypo_info.h"
namespace amunmt {
class Vocab;
class StateInfo;
@ -34,7 +36,7 @@ class MosesPlugin {
static size_t GetDevices(size_t = 1);
void SetDevice();
size_t GetDevice();
const God &GetGod() const
const amunmt::God &GetGod() const
{ return god_; }
void SetDebug(bool debug) {
@ -75,7 +77,7 @@ class MosesPlugin {
// std::vector<double> RescoreNBestList(
// const std::vector<std::string>& nbest,
// const size_t maxBatchSize=64);
void GeneratePhrases(const States& states, size_t lastWord, size_t numPhrases,
void GeneratePhrases(const amunmt::States& states, size_t lastWord, size_t numPhrases,
std::vector<NeuralPhrase>& phrases);
States GenerateStates(const States& parentStates, size_t lastWord, std::vector<size_t>& phrase);
@ -84,15 +86,17 @@ class MosesPlugin {
private:
bool debug_;
God god_;
amunmt::God god_;
std::vector<ScorerPtr> scorers_;
Words filterIndices_;
BestHypsBasePtr bestHyps_;
Sentences sentences_;
std::vector<amunmt::ScorerPtr> scorers_;
amunmt::Words filterIndices_;
amunmt::BestHypsBasePtr bestHyps_;
amunmt::Sentences sentences_;
std::shared_ptr<States> states_;
std::shared_ptr<amunmt::States> states_;
bool firstWord_;
std::vector<size_t> filteredId_;
};
}

View File

@ -13,6 +13,8 @@
#include "common/sentence.h"
#include "common/exception.h"
using namespace amunmt;
God god_;
std::shared_ptr<Histories> TranslationTask(const std::string& in, size_t taskCounter) {