Skip to content

Symex Documentation #4099

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

Merged
merged 4 commits into from
Mar 2, 2019
Merged

Conversation

NathanJPhillips
Copy link
Contributor

More could be done on this but this is an improvement on the current lack of documentation.

  • Each commit message has a non-empty body, explaining why the change was made.
  • Methods or procedures I have added are documented, following the guidelines provided in CODING_STANDARD.md.
  • n/a The feature or user visible behaviour I have added or modified has been documented in the User Guide in doc/cprover-manual/
  • n/a Regression or unit tests are included, or existing tests cover the modified code (in this case I have detailed which ones those are in the commit message).
  • n/a My commit message includes data points confirming performance improvements (if claimed).
  • My PR is restricted to a single feature or bugfix.
  • White-space or formatting changes outside the feature-related changed lines are in commits of their own.

@@ -229,6 +229,12 @@ void goto_symext::symex_threaded_step(
}
}

/// Create a default delegate to retrieve function bodies from a
/// goto_functionst
/// \param goto_functions The function map from which to retrieve function
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

colon after parameter name

typedef goto_symex_statet statet;

/// Construct a goto_symext to execute a particular program
/// \param mh The message handler to use for log messages
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

colon after parameter (here and everywhere else)

/// \param get_goto_function The delegate to retrieve function bodies (see
/// \ref get_goto_functiont)
/// \param new_symbol_table A symbol table to store the symbols added by
/// SymEx
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This camel-casing makes it sound like there were one particular thing of that name. Maybe just say "store the symbols adding during symbolic execution" (applies here and elsewhere)

const symex_configt symex_config;

/// Initialise the symbolic execution and the given state with <code>pc</code>
/// Initialise the given symbolic execution state with <code>pc</code>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using \p pc is shorter

/// \ref get_goto_functiont)
/// \param function_identifier: The identifier of the function containing the
/// instructions
/// \param pc: The first instruction to execute
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add "(program counter)" as that was a recent source of discussion.

/// \remarks
/// While the name seems to imply that this would be called when SymEx
/// doesn't know what to do, it may actually be derived from a German
/// abbreviation for function.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looool. It had never occurred to me that this was not an appropriate English abbreviation at all... (But also I think it's just something in TG blocking us from removing it completely.)

@owen-mc-diffblue
Copy link
Contributor

The \briefs are redundant. The first sentence is taken as the brief description when the doxygen is compiled. You're free to keep them if you prefer to have them there.

@tautschnig tautschnig force-pushed the documentation/symex branch from 77037eb to c2f5c9b Compare March 2, 2019 08:23
@tautschnig tautschnig merged commit 17623d1 into diffblue:develop Mar 2, 2019
Copy link
Contributor

@allredj allredj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✔️
Passed Diffblue compatibility checks (cbmc commit: c2f5c9b).
Build URL: https://travis-ci.com/diffblue/test-gen/builds/102907250

@NathanJPhillips NathanJPhillips deleted the documentation/symex branch August 27, 2019 15:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants