-
Notifications
You must be signed in to change notification settings - Fork 13
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
RDDMin's dd.sym folder name can go over the filesystem limit #22
Comments
With a nice side effect of an other development, the non yet stabilized branch struct_rddmin (with last valgrind version) should solve your problem. |
ffevotte
added a commit
that referenced
this issue
Nov 8, 2018
This version is based on Valgrind-3.14.0. (fixes gh-19) ### Added - Preliminary filtering before Delta-Debugging: only functions performing floating-point operations are considered in the search for instabilities. - Multiple variants of the Delta-Debugging algorithm: (fixes gh-14, gh-22) - srDDmin: variant of rDDmin, specifically tuned to accomodate for stochastic tests - drDDmin: variant of rDDmin where a preliminary binary search is performed in order to further reduce the search space. - New reduced-precision backend (`--rounding-mode=float`). This back-end emulates the use of single-precision arithmetic for all double-precision variables. (fixes gh-11) ### Changed - Python3 port of `verrou_dd`.
ffevotte
added a commit
that referenced
this issue
Nov 8, 2018
This version is based on Valgrind-3.14.0. (fixes gh-19) *** Added - Preliminary filtering before Delta-Debugging: only functions performing floating-point operations are considered in the search for instabilities. - Multiple variants of the Delta-Debugging algorithm: (fixes gh-14, gh-22) - srDDmin: variant of rDDmin, specifically tuned to accomodate for stochastic tests - drDDmin: variant of rDDmin where a preliminary binary search is performed in order to further reduce the search space. - New reduced-precision backend (`--rounding-mode=float`). This back-end emulates the use of single-precision arithmetic for all double-precision variables. (fixes gh-11) *** Changed - Python3 port of `verrou_dd`.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Modern programming languages use name mangling for the purpose of namespace disambiguation. In the presence of generic types, name mangling can generate very long symbol names because a type's methods are preceded by all the the type parameters. When this is combined with RDDMin's willingness to feature all faulty symbole names in a set as a comma-separated list, the filesystem name length limit can be reached:
Since we can't tune up the filesystem name length limit easily (the Linux VFS name length limit is set at kernel build time, and on-disk filesystems have hard length limits in their specification), we need to get around it somehow. I can think of several possibilities:
These possibilities are not mutually exclusive. It could seem unfair to penalize the ergonomics of C and Fortran users just because languages with namespaces and generics generate ridiculously long symbol names. At the same time, if we truncate symbol names, we do need to provide the full list somewhere in case the truncated version is ambiguous (name mangling is used for a reason).
If we do end up truncating, I think it is best to truncate in the middle. That is because the beginning of the mangled name tells us which part of the program (namespace) we are talking about, whereas the end of the mangled name tells us which end-user method we are dealing with. The middle part of the mangled name is only important in cases where a generic type's parameters strongly affect its behaviour, which can happen but is not a very common issue.
The text was updated successfully, but these errors were encountered: