1. 1081 breaks export?

./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.

new topic     » topic index » view message » categorize

2. Re: 1081 breaks export?

murphy said...

./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).

new topic     » goto parent     » topic index » view message » categorize

3. Re: 1081 breaks export?

murphy said...

./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.

new topic     » goto parent     » topic index » view message » categorize

4. Re: 1081 breaks export?

OK, thanks. I think that is an improvement.

new topic     » goto parent     » topic index » view message » categorize

5. Re: 1081 breaks export?

murphy said...

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

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu