<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
I think it'd be another boolean or expansion of a boolean to an integer to declare/import/begin_procedure/constant/variable.<BR>
Not passing all the files at once.<BR>
 <BR>
 <BR>
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.<BR>
 <BR>
 <BR>
Similarly, passing all the C files at once to the C compiler is also attractive, and more work.<BR>
 <BR>
 <BR>
LTCG/LTO provide similar benefits, but we aren't setup to use LTO and honestly I'm trying to ignore it.<BR>
I'll settle for -O1/2/3.<BR>
 <BR>
 <BR>
 - Jay<BR> <BR>

<HR id=stopSpelling>
Subject: Re: [M3devel] import from same .so or not<BR>From: hosking@cs.purdue.edu<BR>Date: Mon, 12 Jul 2010 20:14:39 -0400<BR>CC: m3devel@elegosoft.com<BR>To: jay.krell@cornell.edu<BR><BR>
<META name=Generator content="Microsoft SafeHTML"><BASE>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?<BR><BR>
<DIV>
<DIV>On 12 Jul 2010, at 19:53, Jay K wrote:</DIV><BR class=ecxApple-interchange-newline>
<BLOCKQUOTE><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxApple-style-span>
<DIV style="FONT-FAMILY: Tahoma; FONT-SIZE: 10pt" class=ecxhmmessage>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).<BR>I haven't looked at where all it is sent around.<BR> <BR> - Jay<BR><BR> <BR>> Subject: Re: [M3devel] import from same .so or not<BR>> From:<SPAN class=ecxApple-converted-space> </SPAN><A href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</A><BR>> Date: Mon, 12 Jul 2010 09:28:43 -0400<BR>> CC:<SPAN class=ecxApple-converted-space> </SPAN><A href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</A><BR>> To:<SPAN class=ecxApple-converted-space> </SPAN><A href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</A><BR>><SPAN class=ecxApple-converted-space> </SPAN><BR>> It seems to me this would require massive reworking of the build infrastructure!<BR>><SPAN class=ecxApple-converted-space> </SPAN><BR>> On 11 Jul 2010, at 21:58, Jay K wrote:<BR>><SPAN class=ecxApple-converted-space> </SPAN><BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > It seems to me, an important bit of information is not provided to the backend.<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > The backend is told "import" or "export".<BR>> > But this is about "modules", .m3 files to .m3 files.<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > It isn't about .so files to .so files, or .dlls to .dlls.<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > It's really tristate, not boolean:<BR>> > private to just this source file<SPAN class=ecxApple-converted-space> </SPAN><BR>> > private to this source file and those it statically links to<SPAN class=ecxApple-converted-space> </SPAN><BR>> > public for all<SPAN class=ecxApple-converted-space> </SPAN><BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > Granted, you might statically link "everything".<BR>> > There isn't enforcement of the middle state, and symbols still need to be as unique as the third state.<BR>> > But it is definitely useful.<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > In particular we don't use DECL_VISIBILITY (p) = VISIBILITY_HIDDEN enough.<BR>> > For a long time we never used it. e.g. in the release branch.<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > Agreed?<BR>> > Anyone volunteer to fix?<BR>> > Or mind if I try?<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> > - Jay<BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>> ><SPAN class=ecxApple-converted-space> </SPAN><BR>><SPAN class=ecxApple-converted-space> </SPAN><BR></DIV></SPAN></BLOCKQUOTE></DIV><BR>                                           </body>
</html>