-
Notifications
You must be signed in to change notification settings - Fork 414
Ability to act as a server using a socket communication link, handle critical path list requests, and highlight certain critical path requests #2483
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
… Analysis tool. ServerContext now is a pointer and instantiated only when --server mode is activated. cleanup
…hich are applicable for iteration 1(basic implementation)
Thanks for developing what looks like a great new feature.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this interesting PR. I suggested a few changes to improve readablity.
Some methods write to standard output and error. It would nice to add a verbosity parameter to control how much detail is printed. I am also not sure accessing std::cout and std::cerr from the network thread is thread-safe.
Since this PR includes some chagnes from OpenFPGA project, I might have missed some files.
if (iss >> intValue) { | ||
// Check if there are no any characters left in the stream | ||
char remaining; | ||
if (!(iss >> remaining)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Doesn't eof() method provide the same functionality?
#include <optional> | ||
#include <string> | ||
|
||
std::optional<int> tryConvertToInt(const std::string&); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
vtr_util.cpp has an atoi() funtion implementing the same conversion.
for (auto& t : m_tasks) { | ||
if (t.cmd() == task.cmd()) { | ||
if (t.options() == task.options()) { | ||
std::string msg = "similar task is already in execution, reject new task: " + t.info() + " and waiting for old task: " + task.info() + " execution"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is "task' the old task and "t' the new one?
|
||
void TaskResolver::takeFinished(std::vector<Task>& result) { | ||
for (auto it = m_tasks.begin(); it != m_tasks.end();) { | ||
Task task = *it; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All tasks are copied, even if they are not finished.
} else { | ||
++it; | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess you could use std::partition
public: | ||
TelegramBuffer(std::size_t sizeHint = DEFAULT_SIZE_HINT) | ||
: m_rawBuffer(sizeHint) {} | ||
~TelegramBuffer() = default; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add the default constructor as well.
m_rawBuffer.append(bytes); | ||
} | ||
|
||
std::vector<ByteArray> TelegramBuffer::takeFrames() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add a comment explaining the logic
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some lines are too long. Please break them into multiple lines
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cover cases where extraction fails
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add cases where getting values fail
We want to build this only at foedag and foedag_rs for code. This feature is not available on Raptor so better to leave it disabled until VPR has the relevant updates. verilog-to-routing/vtr-verilog-to-routing#2483
We want to build this only at foedag and foedag_rs for code. This feature is not available on Raptor so better to leave it disabled until VPR has the relevant updates. verilog-to-routing/vtr-verilog-to-routing#2483
Superseded by #2526. |
vpr_it1_pullrequest.pdf
Description
Related Issue
Motivation and Context
How Has This Been Tested?
Types of changes
Checklist: