Skip to content
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

Demangler: Rewrite needed #95

Closed
PeterMatula opened this issue Jan 18, 2018 · 1 comment
Closed

Demangler: Rewrite needed #95

PeterMatula opened this issue Jan 18, 2018 · 1 comment

Comments

@PeterMatula
Copy link
Collaborator

The demangler library is currently being used as it is by the RetDec project to demangle symbol names generated by several C++ compilers (GCC/Clang, Microsoft Visual C++, and Borland C++).

Due to the low quality of the current implementation, it would be very hard to further developed this library - fix bugs, add new features, etc.

It would be best to either replace demangler with some existing 3rd party library (libraries), or completely rewrite it from scratch.

3rd party libraries, or new implementation, must provide at least the same features as the current implementation:

  • Translation of mangled name -> demangled name.
  • Support at least as good as it is for the following compilers:
    • GCC/Clang
    • Microsoft Visual C++
    • Borland C++

3rd party libraries, or new implementation, should also provide new features:

  • Better support for the current compilers (less bugs, more complete support).
  • Possibility to easily add new compilers, new patterns for the existing ones.
  • API that would not only provide the demangled name, but also data type information about function's return/parameters.

We are open to suggestions and discussion about possible tools to use, or design of the rewrite. We would also appreciate if you would be willing to help with the new implementation - if we decide for it.

@PeterMatula
Copy link
Collaborator Author

This is being worked on by one student as his bachelor thesis - see milestone and the referenced forked repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants