I'm considering writing a program in C++ which will embed a Python interpreter for executing macros created by users. Suppose that I'm intending to release my program under the GPLv3. What is not clear to me is what impact this has on the macros and data created by the users of my program.
Do any of the requirements of the GPL carry over from my program to the macros written by users of my program? What about to other user data which is stored with the macros, such as images?
Programs like The GIMP and Gnumeric have macro languages, but are released under the GPL. I've never seen a discussion of whether user-created GIMP Script-Fu or Gnumeric spreadsheets must also be distributed under the GPL. I suspect that this is not the case, but I haven't been able to turn up any evidence for it. In the case of Gnumeric in particular, macros seem more like data than like plugins. (I'm aware that there's extensive discussion about the GPL and plugins, but I've found no discussion about what qualifies something as a plugin.)
A confounding issue is that some core functions of may also be implemented as macros which are copied into user data. In this case, the user may be completely unaware that he is even distributing these macros when he distributes his data.
I'd like not to put my users in a situation which encourages them to violate the GPL, unknowingly or otherwise.
No the macros don't become GPL derived works anymore than a 'C' program written on a GPL linux system or with a GPL gcc compiler become GPL.
Including library functions is a little more complicated. If you wrote those library functions then you can let the user do what they want with them. If they are part of the GIMP/Gnumeric runtime then that's presumably also not a problem.          
But if you pull the source for the library/plugin from a GPL (rather than LGPL) app and wrapped it in a library to be called standalone from the user macro then the macro may well be a derived work.
How does the GPL affect macros stored in user data?