[M3devel] import from same .so or not
Tony Hosking
hosking at cs.purdue.edu
Tue Jul 13 16:36:11 CEST 2010
OK, so what you want is for the build system (cm3/src/M3Build.m3) to pass a flag saying that a given module is package visible. Shouldn't be too hard to do.
On 12 Jul 2010, at 20:50, Jay K wrote:
> I think it'd be another boolean or expansion of a boolean to an integer to declare/import/begin_procedure/constant/variable.
> Not passing all the files at once.
>
>
> Passing all the files at once is attractive for reasons of compilation perf and optimizing codegen but I believe it requires a lot of other work.
>
>
> Similarly, passing all the C files at once to the C compiler is also attractive, and more work.
>
>
> LTCG/LTO provide similar benefits, but we aren't setup to use LTO and honestly I'm trying to ignore it.
> I'll settle for -O1/2/3.
>
>
> - Jay
>
> Subject: Re: [M3devel] import from same .so or not
> From: hosking at cs.purdue.edu
> Date: Mon, 12 Jul 2010 20:14:39 -0400
> CC: m3devel at elegosoft.com
> To: jay.krell at cornell.edu
>
> There question is where and how to communicate it back to gcc. Does it mean putting all the module units on the same command line for compilation by a single instance of cm3cg? Or do you communicate it some other way?
>
> On 12 Jul 2010, at 19:53, Jay K wrote:
>
> I don't know. I hope not. The information is there: lowercase interface vs. uppercase Interface, lowercase module vs. uppercase Module, derived_interface(hidden or private).
> I haven't looked at where all it is sent around.
>
> - Jay
>
>
> > Subject: Re: [M3devel] import from same .so or not
> > From: hosking at cs.purdue.edu
> > Date: Mon, 12 Jul 2010 09:28:43 -0400
> > CC: m3devel at elegosoft.com
> > To: jay.krell at cornell.edu
> >
> > It seems to me this would require massive reworking of the build infrastructure!
> >
> > On 11 Jul 2010, at 21:58, Jay K wrote:
> >
> > >
> > > It seems to me, an important bit of information is not provided to the backend.
> > >
> > > The backend is told "import" or "export".
> > > But this is about "modules", .m3 files to .m3 files.
> > >
> > > It isn't about .so files to .so files, or .dlls to .dlls.
> > >
> > > It's really tristate, not boolean:
> > > private to just this source file
> > > private to this source file and those it statically links to
> > > public for all
> > >
> > > Granted, you might statically link "everything".
> > > There isn't enforcement of the middle state, and symbols still need to be as unique as the third state.
> > > But it is definitely useful.
> > >
> > > In particular we don't use DECL_VISIBILITY (p) = VISIBILITY_HIDDEN enough.
> > > For a long time we never used it. e.g. in the release branch.
> > >
> > > Agreed?
> > > Anyone volunteer to fix?
> > > Or mind if I try?
> > >
> > >
> > > - Jay
> > >
> > >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20100713/8ad91626/attachment-0002.html>
More information about the M3devel
mailing list