[M3devel] hidden interface vs. public Interface? hidden isn't hidden?

Daniel Alejandro Benavides D. dabenavidesd at yahoo.es
Wed Apr 14 18:40:02 CEST 2010


Hi all:
there is a quake directive to export or hide interfaces to packages in cm3 this is from the DEC SRC packages and later pm3, heck the information is the same in all:
http://modula3.com/cm3/doc/help/cm3/m3build/hiding.html
http://cs.wheaton.edu/~cgray/misc/m3/pm3pkg/m3build/src/html/hiding.html
http://www.cs.arizona.edu/~collberg/Research/Modula-3/modula-3/html/m3build/hiding.html

Please note they mention they accept capitalization convention in commands initial letter but partly to support old style m3makefiles so they provide that to clarify better

I think you can try with  
export_interface("Utime")
and to check capitalization convention with 
/* interface("Utime")*/ 
Interface("Utime") 
export_interface("Utime")

I remember there are some issues tough if the Unix file has owner only read permissions because the file will be exported as it is so other users included m3browser won't be able to read the file (for instance if you exported as root user and reading from the web in m3browser), same sort of things happens in NT386.

Though in the above links mention they had this convention of uppercase first 'i' of Interface("Utime")

I know related examples of this kind of missing of meaning, as as source directory called 'SRC' is not accepted (i.e it doesn't find source directory) in Unix platforms but it was accepted in NT386 (in DEC SRC M3, i.e it builds) perhaps because of capital letter symbols (in)discrimination in terminal platforms I guess (I'm aware unix make looks for Makefile and if not for makefile). 
Now I don't know what was is the case in M3/PC Klagenfurt (but as I see the the m3makefiles they had in M3PC 1994 release are C preprocessor directives with special function names a kind of similar to quake and mostly beginning in capital letters) port because it was a DOS platform and they wrote a shell into which can build programs (they didn't have m3make DEC SRC program which because it worked with unix make), I know the long names are ignored in DOS terminals (they substitute the last part with a ~) but they sort of fixed this behavior in the builder/shell they wrote using a name map see:  http://web.archive.org/web/20000520073936/www.ifi.uni-klu.ac.at/Modula-3/m3pc/m3pc.html 

Thanks, I hope it helps

--- El mié, 14/4/10, Tony Hosking <hosking at cs.purdue.edu> escribió:

> De: Tony Hosking <hosking at cs.purdue.edu>
> Asunto: Re: [M3devel] hidden interface vs. public Interface? hidden isn't hidden?
> Para: "Olaf Wagner" <wagner at elegosoft.com>
> CC: m3devel at elegosoft.com
> Fecha: miércoles, 14 de abril, 2010 09:22
> This being hidden *source* files are
> not shipped.
> I'm pretty sure that is still the behaviour.
> Jay, is it possible that you had a source file left behind
> from previous install?
> 
> On 14 Apr 2010, at 07:01, Olaf Wagner wrote:
> 
> > Quoting Jay K <jay.krell at cornell.edu>:
> > 
> >> 
> >> I tried changing from Interface("Utime") to
> interface("Utime").
> >> 
> >>    Now, it turns out, that is a mistake
> anyway, there are still  uses, and they aren't going
> away.
> >> 
> >> But even so, this change doesn't do what it is
> supposed to.
> >> Utime gets marked "hidden" in the .M3EXPORTS
> files.
> >> I haven't yet decipered the .m3x file.
> >> I'm still able to build clients e.g.
> m3-games/tetris.
> >> I'm certain I'm using the updated one. I even rm
> -rf /cm3/pkg/m3core.
> >> 
> >> It seems "hidden" doesn't work?
> >> 
> >> I'll have to dig into the .m3x file I think.
> > 
> > I remember that in the SRC system, hidden files
> weren't shipped at all
> > to the global package pool. Critical Mass changed
> that, because hey
> > wanted the source to be available for browsing.
> > 
> > I always assumed that the compiler was able to hnour
> the hidden state
> > of the interface nonetheless.
> > 
> > If it doesn't work, we should fix it.
> > 
> > Olaf
> > -- 
> > Olaf Wagner -- elego Software Solutions GmbH
> >           
>    Gustav-Meyer-Allee 25 / Gebäude 12, 13355
> Berlin, Germany
> > phone: +49 30 23 45 86 96  mobile: +49 177 2345
> 869  fax: +49 30 23 45 86 95
> >   http://www.elegosoft.com |
> Geschäftsführer: Olaf Wagner | Sitz: Berlin
> > Handelregister: Amtsgericht Charlottenburg HRB 77719 |
> USt-IdNr: DE163214194
> > 
> 
> 


      




More information about the M3devel mailing list