1. 1081 breaks export?
- Posted by murphy Aug 20, 2008
- 786 views
./GtkEngine.e:3 'public' or 'export' must be followed by: <a type>, 'constant', 'procedure', 'type' or 'function' export include GtkRoutines.e
The line in question:
export include GtkEnums.e
This USED to work, now is broken.
2. Re: 1081 breaks export?
- Posted by jimcbrown (admin) Aug 20, 2008
- 768 views
./GtkEngine.e:3 'public' or 'export' must be followed by: <a type>, 'constant', 'procedure', 'type' or 'function' export include GtkRoutines.e
The line in question:
export include GtkEnums.e
This USED to work, now is broken.
"export include" was removed. You are suppose to use "public" and "public include" now. "export" is reserved for internal-library-use-only symbols while public is intended for symbols that are passed on to 3rd party code (the main app).
3. Re: 1081 breaks export?
- Posted by DerekParnell (admin) Aug 20, 2008
- 772 views
./GtkEngine.e:3 'public' or 'export' must be followed by: <a type>, 'constant', 'procedure', 'type' or 'function' export include GtkRoutines.e
The line in question:
export include GtkEnums.e
This USED to work, now is broken.
The construct "export include" has been replaced by "public include". This is the same concept as the before except that only public symbols are exposed to the next level up. Before, it was export symbols but now export symbols are only ever seen by directly include the file that declares them.
Replace the line in GtkEngine.e with
public include GtkEnums.e
And make sure any export symbols in GtkEngine.e that are required by file that includes GtkEngine.e are changed to public.
4. Re: 1081 breaks export?
- Posted by murphy Aug 20, 2008
- 768 views
OK, thanks. I think that is an improvement.
5. Re: 1081 breaks export?
- Posted by jeremy (admin) Aug 20, 2008
- 754 views
OK, thanks. I think that is an improvement.
It allows things such as:
lib_support.e
export function internal_function() public function abc()
lib.e
public include lib_support.e if internal_function() then ... end if
myprog.ex
include lib.e abc() -- good internal_function() -- bad, unknown
So, your supporting library files can expose functions internally to the library, but not pass them on to the end user.
Jeremy