This PR adds 'override' specifiers to all virtual function override.
This was done using a nearly automatic process based gcc's `-Wsuggest-override` option and some shell scripting, plus about 5 manual fixes.
Ideally we could just add `-Wsuggest-override` to `set(CMAKE_CXX_FLAGS_RELEASE...` in `CMakeList.txt `, but unfortunately that will break the build due to pervasively missing overrides in Boost.
This is another update to public master, changes include:
* Alignment and attention matrix output for decoder and scorer
* First steps at refactoring command line options to get rid of boost::options
* Make stand-alone decoder decode line by line.
External regressions tests all pass, there will be more refactoring once we got rid of boost::options.
Related work items: #90261, #90262
This PR is mainly about merging the currently separate implementation of TransformerState::select() with the other two select() versions. The difference between Transformer (batch-major) and the other (RNN, hard-att: time-major) is now reflected in the lowest-level function, State::select().
This PR includes several steps:
* const correctness
* streamlining the DecoderState::select() functions
* re-implementing the original TransformerState::select() code inside State::select(), and more efficiently using reshaping
It also includes a handful of fixes:
* hard-att did not seem to setPosition()
* a few warnings (size_t -> int).
This undoes the auto-formatting of transformer.h, which makes it expensive to merge master into ongoing research source code.
These changes consist mostly of line breaks, spacing, and moving line-end comments back. There is no functionality change; the code should compile to the same binary,
This PR also adds an experimental Visual Studio Project, which aims at allowing to use VS for editing, which has several time-saving advanced features compared to VS Code or plain text editors.