|
|
|
Original Estimate:
|
Unknown
|
Remaining Estimate:
|
Unknown
|
Time Spent:
|
Unknown
|
|
|
Dynamic rules generate DYNAMIC_CALLS strategy definitions for undefine-f and new-f. This is incompatible with separate compilation: the DYNAMIC_CALLS with end up in the external definitions of a library that uses dynamic rules and they will be in the C code as well. If a program that uses the library, applies dynamic rules as well, then the result will be an overriding external definition error.
I can think of two solutions for this:
1) DYNAMIC_CALLS do not need not produce C code, nor do they have to be in the external definitions. So, they can just be left out in the code generation of C and external definitions
2) DYNAMIC_CALLS are only necessary for programs (there is no dead code elimination for libraries), so the DYNAMIC_CALLS in the dynamic rules lifter only have to be generated if the compiler is working on a program.
This is a critical issue: unlike the definition of the same dynamic rule name over a library boundary (which is not supported), this DYNAMIC_CALLS issue affects *any* dynamic rule. So, you cannot use dynamic rules if you import the Dryad library.
Reported by Bogdan.
|
|
Description
|
Dynamic rules generate DYNAMIC_CALLS strategy definitions for undefine-f and new-f. This is incompatible with separate compilation: the DYNAMIC_CALLS with end up in the external definitions of a library that uses dynamic rules and they will be in the C code as well. If a program that uses the library, applies dynamic rules as well, then the result will be an overriding external definition error.
I can think of two solutions for this:
1) DYNAMIC_CALLS do not need not produce C code, nor do they have to be in the external definitions. So, they can just be left out in the code generation of C and external definitions
2) DYNAMIC_CALLS are only necessary for programs (there is no dead code elimination for libraries), so the DYNAMIC_CALLS in the dynamic rules lifter only have to be generated if the compiler is working on a program.
This is a critical issue: unlike the definition of the same dynamic rule name over a library boundary (which is not supported), this DYNAMIC_CALLS issue affects *any* dynamic rule. So, you cannot use dynamic rules if you import the Dryad library.
Reported by Bogdan. |
Show » |
|
|
Please test.